setInterval

Синтаксис

intervalID = window.setInterval(func|code, delay)

Аргументы

func|code
Функция или строка кода для выполнения
delay
Интервал в миллисекундах, т.е 1000 это 1 секунда

Описание, примеры

В отличие от метода setTimeout, setInterval выполняет код много раз, через равные промежутки времени, пока не будет остановлен при помощи clearInterval.

В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция func с телом code.

Следующие два вызова почти одинаковы:

Выделить все
setInterval('alert("прошла секунда")', 1000)
 
function sec() {
  alert("прошла секунда")
}
setInterval(sec, 1000)

Но более правильным считается объявление функции в явном виде, например так:

setInterval(function() { alert(...) }, 1000)

Вызов со строкой существует для совместимости с прежними версиями javascript.

this

Функция выполняется в другом контексте, со значением this = window, поэтому о передаче правильного this надо позаботиться отдельно.

Пример:
Выделить все
object = { 
   func: function() { alert(this) }
}
 
setInterval( object.func , 1000) // this будет равно window
 
// правильный вариант с передачей this
setInterval( function() { object.func.call(object) } , 1000)

Отмена выполнения

Вы можете отменить выполнение setInterval при помощи clearInterval, используя для этого идентификатор intervalID.

Пример:
var intervalID = setInterval(...)
clearInterval(intervalID)