English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
setTimeout()метод для установки таймера, который вызовет функцию или выполнит фрагмент кода, когда таймер истечет.
Этот метод возвращает уникальный идентификатор таймера, поэтому вы можете позже вызватьclearTimeout()чтобы удалить его.
ИспользуйтеclearTimeout()метод для блокировки выполнения этой функции.
Эта функция выполняется всего один раз. Если нужно повторно выполнять, пожалуйста, используйтеsetInterval()метод.
window.setTimeout(function, delay, param1, param2, ...)
setTimeout(function() { alert("Hello World"); }, 2000);Проверьте, посмотрите <›/›
Числа в таблице указывают на первую версию браузера, которая полностью поддерживает метод setTimeout():
Метод | |||||
setTimeout() | 1 | 1 | 4 | 1 | 4 |
параметр | описание |
---|---|
функция | (обязательный) Функция, которую нужно выполнить по истечении времени таймера |
задержка | (обязательный) Время ожидания таймера (в миллисекундах) (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); }Проверьте, посмотрите <›/›
Нажмите на кнопку "Начать подсчет" ниже, чтобы запустить таймер. Нажмите на кнопку "Остановить подсчет", чтобы остановить подсчет:
Передайте параметры функции 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()