Bu

таймеры

Таймер устанавливается программно при помощи методов setTimeout() или setInterval() объекта window.
<script type="text/javascript" language="javascript">

function runOnce()
{
alert('single alert');
}

function runMultiple()
{
alert('повторяющееся сообщение');
}

// интервал времени задаётся в милисекундах,
// т.е. значение 3000 соответствует 3 секундам
var timerOnce = window.setTimeout("runOnce();", 1000);
var timerMulti = window.setInterval("runMultiple();", 4000);

</script>

При помощи setTimeout() можно эмулировать поведение функции setInterval(). Для этого необходимо на каждой итерации заново запускать таймер:
<script type="text/javascript" language="javascript">

function runOnce()
{
alert('single alert');
window.setTimeout("runOnce();", 3000);
}

var timerOnce = window.setTimeout("runOnce();", 3000);

</script>

Если таймер больше не нужен - его можно отключить при помощи методов clearTimeout() или clearInterval(). Обе функции имеют одинаковый синтаксис и в качестве параметра принимают ссылку на таймер.
<script type="text/javascript" language="javascript">

var timerMulti;

function runMultiple()
{
if(условие_истинно)
{
// делаем какие-то действия
}
else
window.clearTimeout(timerMulti);
}

timerMulti = window.setTimeout("runMultiple();", 5000);

</script>

Таймеры очень часто используются для предупреждения пользователя о перенаправлении пользователя на новую страницу. Я думаю, вы не раз видели на сайтах надпись "Вы будете перенаправлены на какую-то-страницу через Х секунд" и вместо "Х" - обратный отсчёт секунд.

При помощи таймера такой приём реализуется очень просто, хотя есть возможность сделать это и средствами мета-тегов, но уже без счётчика оставшихся секунд.
<html>
<head>


<title>Страница перенаправления</title>


<script type="text/javascript" language="javascript">

// выставляем длительность ожидания в секундах
var secCount = 10;

function checkExpiration()
{
if(secCount != 0)
{
// если счётчик ещё не обнулился -
// уменьшаем его и снова взводим таймер
secCount -= 1;
document.getElementbyId("counter").innerHTML = secCount + " ";
window.setTimeout("checkExpiration()", 1000);
}
else
{
// счётчик обнулился и можно
// перенаправить страницу
document.location = "target.htm";
}

}

</script>

</head>

<body onload="window.setTimeout('checkExpiration()', 1000);">

страница будет перезагружена через
<span id="counter">
<!-- записываем начальное значение счётчика -->
<script type="text/javascript" language="javascript">
document.write(secCount);
</script>

</span>

секунд

</body>

</html>

Как показывает практика, практически ни один сайт не обходится без таймеров. Часы, летающий или ползающий текст, простая анимация и редиректы - все они основаны на собятиях таймера.

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

 
   
Создание и продвижение сайта Я