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

Метод Window setTimeout()

Объект окна JavaScript

setTimeout()метод для установки таймера, который вызовет функцию или выполнит фрагмент кода, когда таймер истечет.

Этот метод возвращает уникальный идентификатор таймера, поэтому вы можете позже вызватьclearTimeout()чтобы удалить его.

ИспользуйтеclearTimeout()метод для блокировки выполнения этой функции.

Эта функция выполняется всего один раз. Если нужно повторно выполнять, пожалуйста, используйтеsetInterval()метод.

Грамматика:

window.setTimeout(function, delay, param1, param2, ...)
setTimeout(function() { alert("Hello World"); }, 2000);
Проверьте, посмотрите <›/›

Совместимость браузеров

Числа в таблице указывают на первую версию браузера, которая полностью поддерживает метод setTimeout():

Метод
setTimeout()11414

значение параметра

параметрописание
функция(обязательный) Функция, которую нужно выполнить по истечении времени таймера
задержка(обязательный) Время ожидания таймера (в миллисекундах) (1000 миллисекунд = 1 секунда), после чего выполняется указанная функция или код. Если пропущен, используется значение 0
param1, param2, ...(по умолчанию) Передача значений для этогофункция(function)других параметров (не поддерживается в версиях IE9 и ранее)

Технические детали

Возвратное значение:Число, представляющее значение времени срабатывания установленных таймеров. Это значение можно использовать вместе с методом clearTimeout() для отмены таймера

Более примеров

Этот пример ссылается на внешнюю "именованную" функцию:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
Проверьте, посмотрите <›/›

Использование clearTimeout() для предотвращения выполнения функции:

var timeoutID;
function myFunc() {
  timeoutID = setTimeout(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
function myStopFunc() {
   clearTimeout(timeoutID);
}
Проверьте, посмотрите <›/›

Использование рекурсии для отображения текущего времени (как на цифровом часах, выполняется функция "startTimer()" каждые 1 секунду):

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 
}
Проверьте, посмотрите <›/›

Использование 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);
}
Проверьте, посмотрите <›/›

Нажмите на кнопку "Начать подсчет" ниже, чтобы запустить таймер. Нажмите на кнопку "Остановить подсчет", чтобы остановить подсчет:

0
Проверьте, посмотрите

Передайте параметры функции myFunc (не работает в IE9 и более ранних версиях):

var timeoutID = setTimeout(myFunc, 2000, "First", "Second", "Third");
Проверьте, посмотрите <›/›

Но если вы используете анонимную функцию, она будет работать во всех браузерах:

var timeoutID = setTimeout(function() { myFunc("First", "Second", "Third"); }, 2000);
Проверьте, посмотрите <›/›

См. также

Справка по окну (Window):Метод clearTimeout()

Справка по окну (Window):Метод setInterval()

Справка по окну (Window):Метод clearInterval()

Объект окна JavaScript