Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111

    Non riesco ad eseguire una serie di script di seguito...

    Salve.

    Devo eseguire lo stesso JavaScript per enne volte di seguito.
    Lo script è questo:


    <script language="JavaScript">
    <!--
    function SubmitTrasponder'||w_mat_codice||''||w_sessione||' ()
    {
    this.document.FormTrasponder'||w_mat_codice||''||w _sessione||'.submit();
    }
    SubmitTrasponder'||w_mat_codice||''||w_sessione||' ();
    // -->
    </script>


    Dove la funzione ha come nome "FormTrasponder+w_mat_codice+w_sessione" per far in modo che il nome sia diverso ad ogni chiamata.

    Il numero di script eseguiti lanciandone, per esempio, tre di seguito, cambia sempre. A volte tutti e tre, a volte uno solo, più spesso due su tre...

    Aiuto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non riesco a capire la notazione che usi.

    Ci sono dei caratteri, | e ' , che non usi secondo le regole dei linguaggi che conosco.

    Inoltre non usare l'italico per i programmi, ma inseriscili dntro i tag [ code ] ... [ /code ] (senza gli spazi, naturalmente) o vedi il bottone "code" sopra l'area di inserimento.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Sì, hai ragione.
    Il pipe mi è rimasto perchè questo JavaScript è generato da una procedura Pl-Sql.

    Leggila così, dove "SubmitTrasponder+Variabile" significa che la prima volta si chiamerà SubmitTrasponder1, poi SubmitTrasponder2,3,4, etc.:

    codice:
    <script language="JavaScript"> 
    <!-- 
    function SubmitTrasponder+Variabile() 
    { 
    this.document.FormTrasponder+Variabile.submit(); 
    } 
    SubmitTrasponder+Variabile(); 
    // --> 
    </script>
    Il problema è che se chiamo tutte le funzioni (SubmitTrasponder1,2,3,4) di file, non tutte vengono eseguite.

    Grazie.


    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ancora non ci siamo.
    Il + e` un'operatore aritmetico o di stringa, ma in quella posizione non ha senso.
    Fai un esempio di un caso.


    E comunque quella funzione non ha senso: ha un errore intrinseco.
    Non esiste un document definito all'interno della funzione, per cui this.document all'interno della funzione non punta ad un oggetto valido.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    L'esempio è molto zoppicante.
    Ho qualche problema nel renderlo sintatticamente accettabile perchè è inserito in un contesto molto più complesso.

    Proviamo a lasciar perdere l'esempio.

    Diciamo invece che io devo eseguire un JavaScript (che nel mio caso esegue la submit di una form HTML).

    Se lo eseguo una volta sola funziona tutto.

    Se provo ad eseguirlo n volte di seguito sembra che se ne perda qualcuno per la strada. Ne esegue due o tre, etc.


    Quando dico "eseguirlo n volte di seguito" non intendo con un bottone che clicco n volte. Intendo con una procedura che ne "spara" n di seguito.

    Il giochino del "SubmitTrasponder+Variabile" è semplicemente perchè volevo fare in modo che il JavaScript avesse un nome diverso ogni volta che veniva eseguito.

    Grazie.

  6. #6
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Forse dovrei fare qualcosa del tipo: cancello dalla cache il JavaScript dopo averlo eseguito?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se ci devono essere N funzioni devono avere nomi diversi.

    Ma di solito si puo` parametrizzare, cioe` eseguire qualcosa in base ad un parametro che viene passato alla funzione.

    Esempio:
    Nella <head>:
    codice:
    function SubmitTrasponder(Variabile) { 
      document.getElementById('FormTrasponder' + Variabile).submit(); 
    }
    Nel <body>
    codice:
    SubmitTrasponder('1');
    SubmitTrasponder('2');
    SubmitTrasponder('5');
    ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Io ho fatto qualcosa del genere. Ogni volta ha un nome diverso.
    Il problema è che fino a due di seguito funziona, oltre si perde.

    Non solo. Provando ad eseguirne più di due mettendoci però un bottone da cliccare nel mezzo, funziona tutto.

    Sembrerebbe (ma è una mia sensazione) che sia un problema di velocità/sincronizzazione. Se li eseguo con i tempi di un click (del bottone) in mezzo, funziona. Se li eseguo tutti di file si perde qualcosa.

    E' possibile?

  9. #9
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    In effetti, se chiudo e riapro la sessione del browser, tutto funziona!

    A questo punto mi chiederei: come si pulisce la cache dei JavaScript?

    Grazie.

  10. #10
    Utente di HTML.it L'avatar di mittler
    Registrato dal
    Jun 2000
    Messaggi
    111
    Ho provato con <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> (ho fatto una ricerca nel forum) e sembra funzionare meglio.

    Meglio, non correttamente!

    Nel senso che ne perde qualcuno meno ma ogni tanto qualche JavaScript non viene eseguito...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.