Visualizzazione dei risultati da 1 a 8 su 8

Discussione: dubbi su setTimeout

  1. #1

    dubbi su setTimeout

    avete presente quando usiamo setTimeout per creare delle pause?

    function miafunzione() {
    ...
    setTimeout(miafunzione();5000);
    }
    mi sono sempre chiesto: ma non mi rincoglionisce il browser creando questo loop a spirale che non ha fine?
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il browser sa cosa deve fare.... rilanciare la stessa funzione fra 5 secondi

    Stesso risultato si puo' ottenere con (bada alla sintassi, la tua e' un tantino errata):

    setInterval("miafunzione()",5000);
    function miafunzione() {
    ...
    }
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    scusa non mi sono spiegato bene: non mi riferisco ad un intervallo di pausa prima dell'esecuzione della funzione, ma di una funzione che voglio eseguire ogni tot secondi, quindi di una funzione che giunta al suo termine si autorichiama dopo una certa pausa

    function miafunzione() {
    ...
    setTimeout("miafunzione()";5000);
    }
    :gren:
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    :master: ma la domanda qual'e' :di56:
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    mi sono sempre chiesto: ma non mi rincoglionisce il browser creando questo loop a spirale che non ha fine?
    :bubu:
    mi chiedo: se la pausa è 10 la funzione viene eseguita quasi 100 volte (magari!) al secondo ed in memoria avrò una concatenazione di 100 funzioni aperte una dentro l'altra perchè in realtà nessuna viene conclusa ...dopo 1 minuto diventano 6.000 e così via ... tutto questo non comporto un appesantimento del browser o del sistema?
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  6. #6
    in realtà le funzioni vengono concluse subito... dopo aver chiamato la setTimeout() questa apre un thread di flusso diverso e chiude l'esecuzione della funzione corrente.
    scaduto il Timeout esegue la funzione...

    la differenza fra questo metodo e la chiamata puramente ricorsiva sta nel fatto che questo metodo non ti rincoglionisce il browser perchè utilizza i thread... le chiamate ricorsive invece utilizzano lo stack e quindi possono persino darti la classica schermata blu..

    spero di essermi spiegato bene
    ciao
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

  7. #7
    forte!
    :di56: quindi se in una funzione ho
    ...
    setTimeout("miafunzione()",80000);
    ...istruzione A;
    ...istruzione B;
    ...
    le istruzioni A e B vengono eseguiti immediatamente, indipendentemente da ciò che genera la setTimeout() ???
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  8. #8
    esatto
    «Se leggi dimentichi, se vedi capisci, se fai impari» Piaget

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.