Метод setInterval производит выполнение кода через указанный интервал времени.

Первым параметром указывается код или имя функции, вторым - время в миллисекундах, указывающее через какой промежуток будет повторяться код, заданный первым параметром.

Метод возвращает уникальный идентификатор, с помощью которого можно остановить выполнения кода. Для этого этот идентификатор следует передать функции clearInterval.

См. также метод setTimeout.

См. также урок работа с таймерами в JavaScript из учебника JavaScript для более полного понимания.

Синтаксис

window.setInterval(код или имя функции, время);

Примеры

Пример

Код window.setInterval(timer, 1000) будет запускать функцию timer раз в секунду. И каждую секунду эта функция timer будет выполнять какие-то полезные операции, например, увеличивать счетчик на странице.

Давайте рассмотрим нужный для этого код. Пусть у нас дан инпут. Будем каждую секунду увеличивать значение его атрибута value на единицу:

<input type="text" value="1" id="test">
<input type="submit" onclick="start()">
function start() {
	//По нажатию на кнопку наш таймер начнет работать:
	window.setInterval(timer, 1000);
}

//Эта функция будет запускаться каждую секунду:
function timer() {
	var elem = document.getElementById('test');
	elem.value = parseInt(elem.value)+1; //parseInt преобразует строку в число
}

Обратите внимание на функцию parseInt - она преобразует строку из атрибута value в число.

Это нужно, так как атрибут всегда отдает строку, даже если там хранится число, как у нас, то есть elem.value вернет '1', а не 1 (в самом начале таймера, когда в атрибуте еще 1). И получится, что elem.value + 1 это '1'+1, что дает '11', а не 2).

Поэтому, если не применять parseInt - скрипт начнет складывать наши числа как строки и мы увидим, что в инпуте сначала будет 1, потом 11, потом 111 и так далее.

Если же написать parseInt, то в инпуте будет сначала 1, потом 2, потом 3 и так далее.