Таймеры позволяют отмерять промежутки времени. Например, заводим таймер на 1 минуту, и через 1 минуту он срабатывает (запускается какой-то код на javaScript).
Таймеры бывают 2-х видов: таймаут и интервал. Таймаут — таймер однократного срабатывания, интервал — множественного.
Таймер работает в рамках одного окна (объекта window). И в одном окне могут независимо работать несколько таймеров.
Рассмотрим пример таймаута:
var t1; function Timeout(){ t1=window.setTimeout("alert('setTimeout')", 7000);}
Чтобы в таймере (см. код выше) начать отсчет времени, надо вызвать метод объекта window — setTimeout. У метода 2 параметра: 1 — строка, в которой какой-то код javaScript (обычно пишут вызов какой-то функции), который заработает в момент срабатывания таймера; 2 — количество миллисекунд, через которое таймер сработает. После того, как таймаут сработал, он прекращает свое существование.
Интервал создается методом setInterval. Параметры у этого метода — как у setTimeout (см. выше). Разница в том, что у setInterval интервал будет срабатывать многократно.
var t2; function Interval(){ t1=window.setInterval("alert('setInterval')", 2000);}
Бывают ситуации, когда работу таймера или интервала надо остановить. Для этого есть методы: clearTimeout, clearInterval. В качестве параметра этим методам передается идентификатор таймера, который надо остановить. Такие идентификаторы получаются при создании таймера или интервала (в коде выше в качестве идентификаторов использованы переменные t1 и t2).
clearTimeout(t1); clearInterval(t2);
Код часов (в статусной строке)
var timer; function showTime(){ var now=new Date(); window.defaultStatus=now.toLocaleTimeString();} function startClock(){ if(!timer) timer = window.setInterval('showTime()',1000);} function stopClock(){ window.clearInterval(timer); timer=null; window.defaultStatus=""} <a href="javascript:startClock()">start Clock</a> <a href="javascript:stopClock()">stop Clock</a>