В этом руководстве вы узнаете, как использовать функцию JavaScript setInterval() для многократного вызова функции с фиксированной задержкой между каждым вызовом.
setInterval() — это метод объекта window. setInterval() неоднократно вызывает функцию с фиксированной задержкой между каждым вызовом.
Синтаксис:
let intervalID = setInterval(callback, delay,[arg1, arg2, ...]);
В этом синтаксисе:
callback— это функция обратного вызова, которая должна выполняться каждые миллисекундыdelay.delay— это время (в миллисекундах), которое таймер должен задерживать между выполнениями функции обратного вызова.arg1, …argN— это аргументы, которые передаются функции обратного вызова.
setInterval() возвращает числовое, отличное от нуля число, которое идентифицирует созданный таймер. Вы можете передать intervalID в clearInterval(), чтобы отменить тайм-аут.
Обратите внимание, что setInterval() работает так же, как setTimeout(), но повторно выполняет обратный вызов один раз при каждой указанной задержке.
Пример
В следующем примере функции setInterval() и clearInterval() используются для изменения цвета заголовка раз в секунду после нажатия кнопки «Пуск». Если вы остановите кнопку, clearInterval() отменит тайм-аут.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>JavaScript setInterval Demo</title>
<script>
let intervalID;
function toggleColor() {
let e = document.getElementById('flashtext');
e.style.color = e.style.color == 'red' ? 'blue' : 'red';
}
function stop() {
clearInterval(intervalID);
}
function start() {
intervalID = setInterval(toggleColor, 1000);
}
</script>
</head>
<body>
<p id="flashtext">JavScript setInterval Demo</p>
<button onclick="start()">Start</button>
<button onclick="stop()">Stop</button>
</body>
</html>Заключение
setInterval()неоднократно вызывает функцию один раз с фиксированной задержкой между каждым вызовом.setInterval()возвращаетtimeoutID, который можно передать вclearInterval()для отмены тайм-аута.
