Timer (setTimeout, setInterval)
setTimeout, setInterval, clearTimeout e clearInterval
In JavaScript possiamo programmare l'esecuzione di funzioni con un ritardo o a intervalli regolari. Con setTimeout una funzione viene eseguita una sola volta dopo un certo tempo, con setInterval viene eseguita ripetutamente a intervalli fissi. Per fermare queste operazioni si usano clearTimeout e clearInterval, che annullano rispettivamente un timeout o un intervallo già avviato.
setTimeout
setTimeout()
permette di eseguire un'operazione una sola volta dopo un determinato intervallo di tempo (espresso in millisecondi).
Codice Esempio: setTimeout

console.log("Inizio");
setTimeout(() => {
console.log("Messaggio dopo 2 secondi");
}, 2000);
console.log("Fine");
setInterval
setInterval()
permette di ripetere l'esecuzione di un'operazione ogni determinato intervallo di tempo (in millisecondi). L'esecuzione continua finché non viene interrotta con clearInterval()
.
Codice Esempio: setInterval

let contatore = 1;
let timer = setInterval(() => {
console.log("Esecuzione numero " + contatore);
contatore++;
if (contatore > 5) {
clearInterval(timer);
console.log("Intervallo fermato");
}
}, 1000);
clearTimeout e clearInterval
Entrambe le funzioni restituiscono un identificativo numerico (id). Questo id può essere usato per fermare l’esecuzione con clearTimeout()
o clearInterval()
.
Codice Esempio: clearTimeout

let id = setTimeout(() => {
console.log("Questo non verrà mai eseguito");
}, 3000);
clearTimeout(id);
Tabella riassuntiva
Funzione | Descrizione | Esempio sintetico |
---|---|---|
setTimeout() | Esegue un'operazione una sola volta dopo un intervallo | setTimeout(fn, 2000) |
setInterval() | Ripete l'operazione a intervalli regolari | setInterval(fn, 1000) |
clearTimeout() | Interrompe un setTimeout programmato | clearTimeout(id) |
clearInterval() | Interrompe un setInterval attivo | clearInterval(id) |
Considerazioni
I metodi setTimeout e setInterval sono strumenti fondamentali per gestire azioni temporizzate in JavaScript. È importante ricordare che, sebbene un timer venga interrotto automaticamente alla chiusura o al cambio di pagina, in molti casi è utile fermarlo manualmente con clearTimeout o clearInterval. Questo permette di evitare esecuzioni indesiderate, ottimizzare le prestazioni e mantenere un controllo preciso del flusso del programma.