setTimeout()
Поддержка браузерами
| 4.0+ | 4.0+ | 1.0+ | 1.0+ | 4.0+ | 1.0+ |
Описание
Функция setTimeout() вызывает функцию или выполняет переданный код после указанной задержки.
Примечание: данная функция вызывается на исполнение только один раз, если необходимо повторение выполнения действий через определённый промежуток времени воспользуйтесь функцией setInterval().
setTimeout() в циклах
Некоторые новички в JavaScript пытаются использовать метод setTimeout() в циклах для анимации. Однако никакой анимации в итоге не получают и вот почему. Метод setTimeout() вызывает указанную функцию только один раз: он регистрирует функцию, которая должна быть вызвана через указанное количество миллисекунд, когда указанная задержка истечёт, функция будет вызвана. Поместив метод setTimeout() в тело цикла, при каждой итерации будет зарегистрирован вызов функции через указанный промежуток времени, но так как цикл отрабатывает итерации слишком быстро, то все вызовы регистрируются практически в одно время и создаётся ощущение, что метод setTimeout() отработал всего один раз, а не указанное количество.
Если хочется создать анимацию, то для этой цели необходимо использовать метод setInterval().
Синтаксис
timeoutID = setTimeout(func[, delay, param1, param2, ...]); timeoutID = setTimeout(code[, delay]);
Аргументы
- func: Имя функции, которая будет вызвана после указанной задержки.
- code: Строка, содержащая JavaScript-код, который будет выполнен после указанной задержки.
- delay: Задержка, указываемая в миллисекундах, по истечении которой будет выполнен вызов функции или переданный в виде строки код. Если аргумент, определяющий задержку, отсутствует, то используется значение задержки, установленное по умолчанию – 0.
Примечание: 1 секунда = 1000 миллисекунд
- param1, param2, ... : Параметры, которые будут переданы в качестве аргументов указанной функции.
Возвращаемое значение
- Идентификатор: числовой идентификатор, который может быть использован функцией clearTimeout().
Пример
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Название веб-страницы</title>
</head>
<body>
<p><button onclick="showAlert();">Вызвать alert через 3 секунды</button></p>
<p><button onclick="clearAlert();">Отменить вызов alert</button></p>
<script>
let timeoutID;
function showAlert() {
timeoutID = setTimeout("alert('Та-да!');", 3000);
}
function clearAlert() {
clearTimeout(timeoutID);
}
</script>
</body>
</html>
Попробовать »