Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Mettere in pausa uno script

    Ciao a tutti,

    devo far eseguire delle funzioni con intervalli di tempo definiti, del tipo:

    funzione 1

    pausa di un secondo

    funzione 2

    pausa....

    con setTimeOut non posso perchè se setto x esempio 1000 msc alla funzione 1 e 2000 msc alla 2, alla prima esecuzione tra la 1 e la 2 c'è una diff di 1 seconso, mentre alle esecuzioni successive la diff raddoppia ad ogni esecuzione (ovviamente)

    ma non c'è un metodo per dire "fermati per x millisecondi" e poi riprendi?

    Ciao,

    Grazie

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: Mettere in pausa uno script

    Originariamente inviato da 4everskiff
    con setTimeOut non posso perchè se setto x esempio 1000 msc alla funzione 1 e 2000 msc alla 2, alla prima esecuzione tra la 1 e la 2 c'è una diff di 1 seconso, mentre alle esecuzioni successive la diff raddoppia ad ogni esecuzione (ovviamente)
    quali esecuzioni successive?
    Non puoi mettere la chiamata col setTimeout alla seconda funzione dentro la prima funzione?

  3. #3
    ti faccio un esempio:

    function 1(){
    setTimeout('1()', 1000)
    }

    function 2(){
    setTimeout('2()', 2000)
    }

    se chiamo le due funzioni, la 1() viene eseguita a 1000,2000,3000..., mentre la 2() a 2000,4000,6000... solo la prima esecuzione rispetta la differenza di 1000, mentre io voglio che la 1() e la 2() vengano eseguite ogni x, mentre tra le due ci sia sempre una differenza di esecuzione di y; in totale ho 7 funzioni

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    e non puoi fare
    codice:
    function fun1(){
      setTimeout('fun2()',1000);
    }
    function fun2(){
      setTimeout('fun3()',1000);
    }
    function fun3(){
      setTimeout('fun4()',1000);
    }
    ...
    ...
    ...
    
    function fun7(){
      setTimeout('fun1()',1000);
    }

  5. #5
    ho già provato ma non funziona; comunque ho già risolto con:

    setinterval("f()",5000)

    function f(){
    setTimeout("f1()", 0);
    setTimeout("f2()", 500);
    setTimeout("f3()", 1000);
    setTimeout("f4()", 1500);
    setTimeout("f5()", 2000);
    setTimeout("f6()", 2500);
    setTimeout("f7()", 3000);
    f1()
    f2()
    f3()
    f4()
    f5()
    f6()
    f7()
    }

    così mi esegue tutto ogni 5 sec e ogni f() in sequenza con intervalli di 1/2 secondo l'una dall'altra

    comunque grazie 1000. ciao.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il problema e` che il setTimeout non e` associato ad alcuna variabile, quindi e`unico.

    Per avere timeout diversi, occorre associare delle variabili:
    codice:
    var tim1, tim2, tim3;
    function fun1(){
      tim1 = setTimeout('fun2()',1000);
    }
    function fun2(){
      tim2 = setTimeout('fun3()',1000);
    }
    function fun3(){
      tim3 = setTimeout('fun4()',1000);
    }
    ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    sei sicuro Mich_? :master:
    il puntatore al timer servirebbe nel caso si volesse bloccare l'esecuzione col clearTimeout... è facoltativo
    ho fatto questa prova e funziona
    codice:
    <BODY onload="fun1()">
    <script language="javascript">
    function fun1(){
    	document.getElementById('div1').innerHTML+='-';
    	setTimeout('fun2()',500);
    }
    function fun2(){
    	document.getElementById('div2').innerHTML+='-';
    	setTimeout('fun3()',500);
    }
    function fun3(){
    	document.getElementById('div3').innerHTML+='-';
    	setTimeout('fun4()',500);
    }
    function fun4(){
    	document.getElementById('div4').innerHTML+='-';
    	setTimeout('fun1()',500);
    }
    </script>
    <div id="div1"></div>
    
    <div id="div2"></div>
    
    <div id="div3"></div>
    
    <div id="div4"></div>
    
    </BODY>

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Opps ho fatto un po' di confusione.

    In effetti in questi casi il timeout attivo e` sempre solo uno alla volta. Io pensavo che dovessero essere attivi piu` di uno alla volta, come in:
    codice:
    var tim1, tim2, tim3;
    function fun1(){
      document.getElementById('div1').innerHTML+='-';
      tim1 = setTimeout('fun1()',1000);
    }
    function fun2(){
      document.getElementById('div2').innerHTML+='-';
      tim2 = setTimeout('fun2()',3500);
    }
    function fun3(){
      document.getElementById('div3').innerHTML+='-';
      tim3 = setTimeout('fun3()',5500);
    }
    ...
    <div id="div1"></div>
    
    <div id="div2"></div>
    
    <div id="div3"></div>
    E in questo caso ci vuole la variabile di appoggio.

    In effetti non avevo letto bene lo script, e qualche frase del primo post mi ha tratto in inganno.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    visto che il forum è fatto per discutere discutiamo

    Mich_ la variabile d'appoggio è facoltativa anche in questo caso (in ogni caso)
    serve solo per poter fermare il setTimeout
    ho verificato
    codice:
    <BODY onload="fun1();fun2();fun3()">
    <script>
    function fun1(){
      document.getElementById('div1').innerHTML+='-';
      setTimeout('fun1()',1000);
    }
    function fun2(){
      document.getElementById('div2').innerHTML+='-';
      setTimeout('fun2()',3500);
    }
    function fun3(){
      document.getElementById('div3').innerHTML+='-';
      setTimeout('fun3()',5500);
    }
    </script>
    <div id="div1"></div>
    
    <div id="div2"></div>
    
    <div id="div3"></div>
    
    </BODY>
    con stima
    willybit

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Grazie Willi per tutte le prove.

    Ma ,scusami, non sono convinto del tutto.
    Hai fatto anche prove con browser diversi?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2025 vBulletin Solutions, Inc. All rights reserved.