Таймер

Таймеры в JavaScript позволяют запустить код через нужное время.

Запомните этого весёлого кота и продолжайте чтение.

Чтобы запустить таймер, вам нужно указать время задержки. Время задержки отсчитывается в миллисекундах. Далее нужно указать код, который следует запустить после указанного времени. Таймер начинает работу сразу же после его настройки.

После завершения отсчета таймер запускает код JavaScript и исчезает. Можно создать многоразовый таймер, который будет запускать код через определенные промежутки времени, пока вы его не остановите. Также можно использовать одноразовый таймер.

Метод setTimeout()

Одноразовые таймеры запускаются при помощи метода setTimeout().


setTimeout("alert('Мяу');", 3000);

У метода два аргумента. В первом аргументе указывается код, который запускается после прекращения работы таймера. Во втором - время задержки в миллисекундах.

Если вы читали статью достаточно медленно, то взгляните на кота ещё раз. Через две минуты радостная рожица котика должна смениться на грустную, потому что вы совсем не обращаете на него внимания (((.

Код, отвечающий за этот сценарий.


<body onload="setTimeout(function(){ document.getElementById('happycat').src='sadcat.png'; },2 * 60 * 1000);">

Метод setInterval()

Задание таймера, который должен срабатывать через определенные промежутки времени, осуществляется с помощью метода setInterval(). Его синтаксис похож на предыдущий метод. В результате заданный код будет запускаться много раз.


var timerID = setInterval("alert('Мяу');", 3000);

Во втором параметре передаётся обработчик функции. Для более сложных ситуаций удобнее вынести в отдельный блок.


function handleRefresh(){
	alert("Мяу!");
}

window.onload = function(){
	var timerId = setInterval(handleRefresh, 3000);
}

Но повторяющий код может стать надоедливым для пользователя, вплоть до закрытия окна браузера.

Для прекращения работы таймера, запущенного методом setInterval() используйте метод clearInterval(). Ему следует передать идентификатор таймера, который можно получить у метода setInterval().


clearInterval(timerID);

Закрытие окна браузера также прекращает работу таймера.

Если вы хотите создать таймер, который будет запускать код в определенное время, вам придётся сначала получить текущее время при помощи объекта Date, а затем вычесть его из желаемого времени срабатывания.

Реклама