What is this? From this page you can use the Social Web links to save Come gestire timeout multipli to a social bookmarking site, or the E-mail form to send a link via e-mail.

Social Web

E-mail

E-mail It
October 23, 2007

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:
  1. /* richiama la funzione alert allo scadere dei 5000 ms */
  2. var timeout = setTimeout( "alert('5 secondi!')",5000);
  3.  
  4. /* cancella l'evento associato alla variabile timeout*/
  5. 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:
  1. //dichiaro variabile globale
  2. var timeoutsQueue = new Array();
  3.  
  4. //aggiungo evento
  5. timeoutQueue[n] = setTimeout("ritardaFunction("+parametro+")",250);
  6.  
  7. //interrompo un singolo evento
  8. clearTimeout(timeoutQueue[n]);
  9.  
  10. //interrompo tutti gli eventi della coda
  11. for(i=0;i<timeoutQueue.length;i++){
  12.         clearTimeout(timeoutQueue[i]);
  13. }


Return to: Come gestire timeout multipli