Archivio: 2007 October
Come gestire timeout multipli
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]);
-
}
Easy Clear #4, ovvero “e mò basta però”
dopo la terza puntata di easy clear mi sono accorto che non sempre funziona su ie6.
dramma e panico.
non vi preoccupate ho la soluzione:
la 3 prevedeva di mettere nel contenitore dei float il seguente codice
CSS:
-
#wrapper {
-
overflow:hidden;
-
height:1%;
-
height:auto !important;
-
}
se non funziona su ie6 provate questo.
CSS:
-
#wrapper {
-
overflow:hidden;
-
width:100%;
-
}
any feedback?
