Come gestire timeout multipli
Posted in: Programmazione, Vita da Developer
Spesso lavorando in Javascript ci si ritrova a lavorare con i timeouts. Generare eventi temporizzati in Javascript è abbastanza banale, si ricorre all'uso di due funzioni:
- setTimeout() - che esegue una porzione di codice dopo lo scadere di x millisecondi
- clearTimeout() - cancella il setTimeout()
Notare la sintassi dei comandi:
JavaScript:
-
/* richiama la funzione alert allo scadere dei 5000 ms */
-
var timeout = setTimeout( "alert('5 secondi!')",5000);
-
-
/* cancella l'evento associato alla variabile timeout*/
-
clearTimeout(timeout);
Ma se si devono gestire più eventi temporizzati contemporaneamente? Una possibile soluzione è creare una variabile globale in cui gestire la coda di timeout, e una funzione che ripulisca la coda.
JavaScript:
-
//dichiaro variabile globale
-
var timeoutsQueue = new Array();
-
-
//aggiungo evento
-
timeoutQueue[n] = setTimeout("ritardaFunction("+parametro+")",250);
-
-
//interrompo un singolo evento
-
clearTimeout(timeoutQueue[n]);
-
-
//interrompo tutti gli eventi della coda
-
for(i=0;i<timeoutQueue.length;i++){
-
clearTimeout(timeoutQueue[i]);
-
}
Return to: Come gestire timeout multipli
Social Web