JavaScript

Установка таймера на выполнение функций в JavaScript

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

Для повторного выполнения функций JavaScript используются две специальные функции: setTimeout() и setInterval().

//Выполнение функции один раз через 1 секунду
setTimeout('getMessage();', 1000);
//Многократное выполнение функции через 5 секунд
setInterval('getMessage();', 5000);

Рассмотрим пример асинхронного получения данных через заданные промежутки времени.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Timer</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
window.onload = function(){
setTimeout('getMessage();', 1000);
setInterval('getMessage();', 5000);
}
function getMessage(){
$.ajax({
type: "GET",
url: "message.php",
success: function(msg){
$('#news').empty().append(msg);
}
})
}
</script>
</head>
<body>
<div id="news"></div>
</body>
</html>

Следует помнить, что установка небольшого интервала времени между выполнениями функции (например, 1 сек) может вызвать значительную нагрузку на сервер при большом числе ajax-запросов.
Для остановки работы таймера используется функция clearInterval().

id=setInterval('getMessage();', 5000);
clearInterval(id);


Статьи:


copyright © 2012 Все права защищены.