setTimeout e clearTimeout
In una pagina web mediante specifici metodi dell'oggetto window possiamo impostare dei timer che allo scadere di un tempo prestabilito
eseguono una determinata funzione. I metodi in questioni sono quattro, i primi due che prenderò in considerazione sono setTimeout e
clearTimeout. Al primo metodo setTimeout si devono passare due parametri, il primo è il nome della funzione
che allo scadere del tempo prestabilito sarà eseguita e il secondo parametro è un valore che rappresenta il numero di millisecondi che devono passare prima che
la funzione venga eseguita, naturalmente trattandosi di millisecondi se inseriamo 1000 significa un secondo. Questo metodo restituisce un valore numerico che
rappresenta l'ID del timer che deve essere usato nel caso volessimo usare anche il secondo metodo clearTimeout
per cancellare il timer prima che vada in funzione lanciando il codice da eseguire. Bisogna anche dire che questo particolare tipo di timer và in funzione solo
una volta e quindi termina. Un esempio di codice possiamo vederlo qui sotto, copiandolo incollandolo e mandandolo in esecuzione in una pagina con estensione
.html visualizzerà due pulsanti, uno per attivare il Timer e l'altro per annullarlo, attivandolo dopo 5 secondi mostrerà una finestra che informa che la
funzione associata al Timer è stata eseguita.
Esempio di setTimeout e clearTimeout |
|
|
Come in precedenza ho detto il metodo setTimeout lancia ede esegue una funzione passata come parametro poi
termina, cioè non viene più eseguita. Se vogliamo un Timer che esegua un metodo ad intervalli regolari senza mai terminare abbiamo a disposizione i metodi
setInterval e clearInterval sempre dell'oggetto window, questi due metodi però non sono disponibili nei browser più vecchi. Vediamo allora adesso come superare
il problema usando il metodo setTimeout. L'esempio proposto sotto visualizza e incrementa un contatore ad intervalli di un secondo
fino a quando non si arresta il Timer con il metodo clearTimeout.
Esempio di setTimeout e clearTimeout a ciclo continuo |
|
|
Come si può vedere all'interno della funzione contatore ho inserito la chiamata al medoto
setTimeout che ogni volta riavvia il Timer fino a quando non viene arrestato con il metodo clearTimeout.
setInterval e clearInterval
Il metodo setInterval prende gli stessi parametri del metodo setTimeout, ma a
differenza di questo esegue il Timer ad intervalli regolari fino a quando non lo si arresta con il metodo clearInterval, quindi
possiamo vedere qui sotto lo stesso esempio precedente ma usando questi due nuovi metodi.
Esempio di setInterval e clearInterval |
|
|
Tutti tre gli esempi di questa pagina possono essere copiati ed incollati in una pagina del notepad, poi dopo averla chiusa si cambia
l'estensione del file in .html e si fa doppio clic su di essa per mandarla in esecuzione.
|