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

Metodo Window setTimeout()

Oggetto Window JavaScript

setTimeout()una volta che il timer è scaduto, il timer chiamerà la funzione o eseguirà un segmento di codice.

Questo metodo restituisce un ID univoco identificativo del timer, quindi è possibile impostare un timer utilizzando il metodoclearTimeout()per rimuoverlo.

usareclearTimeout()metodo per bloccare l'esecuzione di questa funzione.

Questa funzione viene eseguita una volta sola. Se si desidera eseguire ripetutamente, utilizzaresetInterval()metodo.

Sintassi:

window.setTimeout(function, delay, param1, param2, ...)
setTimeout(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 setTimeout():

Metodo
setTimeout()11414

valore del parametro

parametrodescrizione
funzione(必需)计时器到期后要执行的函数
delay(必需)计时器应等待的时间(以毫秒为单位)(1000毫秒= 1秒),然后执行指定的函数或代码。如果省略,则使用值0
param1, param2, ...(可选)传递给该函数(function)的其他参数(IE9和更早版本中不支持)

技术细节

返回值:一个数字,表示设置的计时器的超时ID值。将此值与clearTimeout()方法一起使用可取消计时器

更多实例

此示例引用外部“命名”函数:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
Prova a vedere‹/›

使用clearTimeout()阻止函数运行:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
function myStopFunc() {
   clearTimeout(timeoutID);
}
Prova a vedere‹/›

使用递归显示当前时间(就像数字手表一样,每1秒钟执行一次“ startTimer()”函数):

window.addEventListener("load", startTimer);
function startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
   setTimeout(startTimer, 1000); // Recursion 
}
Prova a vedere‹/›

使用setTimeout()创建动态进度条:

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

Clicca sul pulsante "Inizia il conteggio" per avviare il timer. Clicca sul pulsante "Ferma il conteggio" per fermare il conteggio:

0
Prova a vedere

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

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

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

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

Riferimenti correlati

Riferimento finestra (Window):Metodo clearTimeout()

Riferimento finestra (Window):Metodo setInterval()

Riferimento finestra (Window):Metodo clearInterval()

Oggetto Window JavaScript