JavaScript dorme/attende prima di continuare
Ho un codice JavaScript a cui ho bisogno di aggiungere una funzione sleep/wait. Il codice che sto eseguendo è già in una funzione, ad es:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Ho sentito che una possibile soluzione potrebbe includere
setTimeout
ma non sono sicuro di come usarlo in questo caso.
Non posso usare PHP, poiché il mio server non lo supporta, anche se usare jQuery andrebbe bene.
291
1
JS non ha una funzione sleep, ha le funzioni setTimeout() o setInterval().
Se puoi spostare il codice che hai bisogno di eseguire dopo la pausa nel callback
setTimeout()
, puoi fare qualcosa del genere:vedi esempio qui: http://jsfiddle.net/9LZQp/
Questo non fermerà l'esecuzione del tuo script, ma finché
setTimeout()
è una funzione asincrona, questo codicelo stamperà nella console:
(notare che DOG viene stampato prima di THIS IS)
Potete usare il seguente codice per simulare un sonno per brevi periodi di tempo:
ora, se volete dormire per 1 secondo, basta usare
esempio: http://jsfiddle.net/HrJku/1/
si prega di notare che questo codice terrà occupato il vostro script per n millisecondi. Questo non solo fermerà l'esecuzione di Javascript sulla vostra pagina, ma a seconda dell'implementazione del browser, potrebbe rendere la pagina completamente non reattiva, e forse rendere l'intero browser non reattivo. In altre parole questa è quasi sempre la cosa sbagliata da fare.