Таймеры и интервалы в JavaScript
В JavaScript есть два основных способа запуска кода через определённые промежутки времени: таймеры и интервалы.
- Таймер (setTimeout): Выполняет код один раз после заданной задержки в миллисекундах.
- Интервал (setInterval): Повторяет выполнение кода через заданный интервал времени в миллисекундах.
Работа с интервалами (setInterval)
Функция setInterval создаёт интервал. Она принимает два аргумента:
- Функция: Функция, которая будет вызываться периодически. Это может быть как именованная функция, так и анонимная.
- Задержка (мс): Интервал времени между вызовами функции в миллисекундах.
Пример с именованной функцией:
let counter = 0;
function myFunc() {
counter++;
console.log("Counter: " + counter);
}
let intervalId = setInterval(myFunc, 1000); // Вызов myFunc каждую секунду
Пример с анонимной функцией:
let counter = 0;
let intervalId = setInterval(function() {
counter++;
console.log("Прошло секунд: " + counter);
}, 1000);
Остановка интервала
Для остановки интервала используется функция clearInterval. Ей передаётся идентификатор интервала, возвращаемый setInterval:
let counter = 0;
let intervalId = setInterval(function() {
counter++;
console.log("Прошло секунд: " + counter);
if (counter === 3) {
clearInterval(intervalId);
}
}, 1000);
Этот пример останавливает интервал после трёх секунд.
Работа с таймерами (setTimeout)
Функция setTimeout создаёт таймер. Как и setInterval, она принимает два аргумента:
- Функция: Функция, которая будет выполнена один раз.
- Задержка (мс): Время задержки перед выполнением функции в миллисекундах.
Пример с анонимной функцией:
setTimeout(function() {
console.log("Таймер сработал");
}, 2000); // Выполнение кода через 2 секунды
Пример с именованной функцией:
function myTimerFunction() {
console.log("Таймер сработал!");
}
setTimeout(myTimerFunction, 2000);
setInterval и setTimeout — эффективные инструменты для создания интерактивных веб-страниц. Они позволяют запускать код через заданные интервалы времени, что делает JavaScript более динамичным и гибким. Понимание их работы необходимо для разработки многих распространённых веб-приложений.