La funzione setInterval() in JavaScript

La funzione setInterval() in JavaScript è utilizzata per ripetere l'esecuzione di una funzione o di un blocco di codice a intervalli di tempo regolari definiti.

let intervalID = setInterval(function[, delay, arg1, arg2, ...]);

Essenzialmente la funzione prende due parametri:

  • function è la funzione che voglio eseguire dopo ogni intervallo di tempo. Può essere anche una funzione anonima o una funzione freccia.
  • delay è l'intervallo di tempo in millisecondi tra le esecuzioni successive della funzione. Il valore minimo è in genere 4 ms.
  • arg1, arg2, ... sono opzionali e rappresentano i parametri aggiuntivi da passare alla funzione.

Finché non viene interrotta, setInterval() ripete l'esecuzione della funzione o del blocco di codice associato.

A cosa serve? La funzione setInterval() è molto utile per eseguire operazioni ripetitive, come aggiornare informazioni in tempo reale, creare animazioni, o semplicemente eseguire un controllo periodico in background.

Ad esempio, questo script chiama la funzione saluta()

  1. function saluta() {
  2. document.write('Ciao mondo!');
  3. }
  4. const intervallo = setInterval(saluta, 2000);

La funzione saluta() viene eseguita ogni ogni 2000 millisecondi (2 secondi).

Ciao mondo!
Ciao mondo!
Ciao mondo!
Ciao mondo!
Ciao mondo!

Poiché l'esercuzione prosegue all'infinito, è molto utile indicare una condizione di terminazione tramite la funzione clearInterval() passando l'identificatore dell'intervallo.

Ad esempio, questo script fissa un massimo di 5 ripetizioni.

  1. function saluta() {
  2. document.write('Ciao mondo!');
  3. }
  4. // Imposto un contatore per le ripetizioni
  5. let conteggio = 0;
  6. const numeroMassimoRipetizioni = 5;
  7. // Definisco la funzione che andrà a incrementare il conteggio
  8. // e fermerà l'intervallo quando raggiunge il numero massimo di ripetizioni
  9. const intervallo = setInterval(() => {
  10. saluta();
  11. conteggio += 1;
  12. if (conteggio >= numeroMassimoRipetizioni) {
  13. clearInterval(intervallo);
  14. }
  15. }, 2000);

In alternativa, posso fissare un tempo massimo tramite setTimeout() oltrepassato il quale l'esecuzione di setInterval() viene interrotta

  1. function saluta() {
  2. document.write('Ciao mondo!');
  3. }
  4. // Imposta il tempo dopo il quale desideri che l'intervallo si fermi (es. 10 secondi)
  5. const tempoDiFermata = 10000;
  6. const intervallo = setInterval(saluta, 2000);
  7. // Ferma l'esecuzione dopo il tempo di fermata prestabilito
  8. setTimeout(() => {
  9. clearInterval(intervallo);
  10. console.log('Intervallo fermato.');
  11. }, tempoDiFermata);

In quest'ultimo codice l'esecuzione viene fermata dopo 10000 millisecondi (10 secondi).

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Javascript

Le strutture di controllo

Gestione degli errori ed eccezioni

Le strutture cicliche

FAQ