В отличие от метода setTimeout, setInterval выполняет код много раз, через равные промежутки времени, пока не будет остановлен при помощи clearInterval.
В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция с телом code.
Следующие два вызова почти одинаковы:
// (1)
setInterval('alert("прошла секунда")', 1000)
// (2)
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)
Спасибо. Очень помогло.
Я как-то писал программу, которая отсчитывает 60 секунд в обратном порядке.
Так вот, когда значение опускается до 56, интервал отсчёта составляет уже две секунды, потом 4, потом я сам со счёта сбился... В чём проблема, нужно парсить время отсчёта, или датить?
Недавно встретил эту функцию. Сам, только начал изучать веб-дизайн.
Значение задержки ничуть не в милисекундах.
Счас вот гоняю цикл с НУЛЁВОЙ задержкой - а всёравно отрабатывается относительно медленно.
Немогу понять - в чём причина. Надо много быстрее чтобы работало.
Попробуй использовать setTimer(); мне помогает
Спасибо.Антигерой:
Значение в миллисекундах, просто возможности процессора
ограничены некоторым значением, обычно меньше 70 миллисекунд нет
смысла указывать.
PS. Сужу по опыту на C#.
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.