English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Metodo setInterval() della finestra

Oggetto Window JavaScript

setInterval()Metodo che chiama ripetutamente una funzione o esegue un segmento di codice con un ritardo fisso tra le chiamate.

Il metodo setInterval() chiama continuamente la funzione o il codice specificato fino a quando non viene chiamatoclearInterval()Metodo o chiudendo la finestra.

Questo metodo restituisce un ID di intervallo univoco che identifica l'intervallo, quindi puoi annullarlo in seguito chiamando clearInterval() o chiudendo la finestra.

Per eseguire una funzione una volta soltanto entro un determinato numero di millisecondi, utilizzaresetTimeout()Metodo.

Sintassi:

window.setInterval(function, delay, param1, param2, ...)
setInterval(function(){ alert("Hello World"); }, 2000);
Prova a vedere‹/›

Compatibilità del browser

I numeri nella tabella specificano la prima versione del browser che supporta completamente il metodo setInterval():

Metodo
setInterval()11414

Valore del parametro

ParametroDescrizione
function(Obbligatorio) Ognidelay (ritardo)Esegui la funzione ogni millisecondo
delay(Obbligatorio) Il timer dovrebbe essere in millisecondi (1000 ms = 1 secondo), con un ritardo tra l'esecuzione della funzione o del codice specificato. Se il valore è inferiore a 10, utilizzare il valore 10
param1, param2, ...(Opzionale) Passare a questofunction(funzione)Altri parametri  (non supportati nelle versioni IE9 e precedenti)

Dettagli tecnici

Valore di ritorno:Un numero che rappresenta l'ID del valore di intervallo impostato per il timer. Utilizzare questo valore insieme al metodo clearInterval() per annullare il timer

Più esempi

Questo esempio fa riferimento a una funzione "esterna" denominata:

var intervalID;
funzione myFunc() {
  intervalID = setInterval(myCallback, 2000);
}
funzione myCallback() {
  alert("Hello World");
}
Prova a vedere‹/›

Mostra l'ora corrente (esattamente come un orologio digitale, esegue la funzione "startTimer()" ogni 1 secondo):

var intervalID = setInterval(startTimer, 1000);
funzione startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
Prova a vedere‹/›

Nell'esempio precedente, utilizzare clearInterval() per fermare il tempo:

var intervalID = setInterval(startTimer, 1000);
funzione startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
funzione stopTimer() {
   clearInterval(intervalID);
}
Prova a vedere‹/›

Cambiare tra due colori di sfondo ogni 200 millisecondi fino a che clearInterval() non lo ferma:

var t = setInterval(setColor, 200);
funzione setColor() {
   var x = document.body;
   x.style.backgroundColor = (x.style.backgroundColor == "coral") ? "lightgreen" : "coral";
}
funzione stopColor() {
   clearInterval(t);
}
Prova a vedere‹/›

Creare una barra di progresso dinamica utilizzando setInterval() e clearInterval():

var i = 0;
var bar = document.getElementById("progress-bar");
var t;
funzione start() {
  t = setInterval(progress, 60);
}
funzione progress() {
  se (i < 100) {
 i++;
 bar.style.width = i + "%";
 bar.innerHTML = i + " %";
  }
 clearInterval(t);
  }
}
function stop() {
  clearInterval(t);
}
Prova a vedere‹/›

Passa parametri alla funzione myFunc (non funziona in Internet Explorer 9 e versioni precedenti):

var intervalID = setInterval(myFunc, 2000, "First", "Second", "Third");
Prova a vedere‹/›

Ma, se usi una funzione anonima, funzionerà in tutti i browser:

var intervalID = setInterval(function(){ myFunc("First", "Second", "Third"); }, 2000);
Prova a vedere‹/›

Riferimenti correlati

Riferimento finestra (Window):Metodo clearInterval()

Riferimento finestra (Window):Metodo setTimeout()

Riferimento finestra (Window):Metodo clearTimeout()

Oggetto Window JavaScript