Задержка в JavaScript

Данная статья посвящена созданию искусственных задержек выполнения программного кода в языке JavaScript. Итак, действие, упомянутое в заголовке сего материала, можно выполнить, как минимум двумя способами — с помощью функций setInterval() и setTimeout().

setTimeout():

Функция setTimeout() — вызывает другую функцию через заданное количество миллисекунд, но только 1 раз. Ниже представлен простейший пример:

<script type="text/javascript">
function vremya_proshlo() {
  alert("Минуло две с половиной секунды.")
}
setTimeout(vremya_proshlo, 2500);
</script>

Однако в данном случае также можно писать и вот так,  — эффект будет тем же:

<script type="text/javascript">
setTimeout('alert("Минуло две с половиной секунды.")', 2500);
</script>

setInterval():

Функция setInterval() — вызывает другую функцию через заданное количество миллисекунд сколько угодно раз, пока вы самостоятельно не вызовите clearInterval(iid), где iid — это идентификатор интервала, который возвращает setTimeout(). Смотрим пример (новая адаптация того, что уже было показано ранее):

<script type="text/javascript">
setInterval('alert("Минуло две с половиной секунды.")', 2500);
</script>

А теперь сделаем чуть посложнее. Прервем выполнение по таймеру, как только значение переменной i станет равным 6, т.е. сообщение «прошло N секунд» покажется ровно 3 раза — минует 6 секунд прежде чем сценарий прекратит свою работу:

<script type="text/javascript">
var i = 0;
function vremya_proshlo(i, id) {
  i = i + 2;
  alert('Прошло ' + i + ' секунд(ы).');
  if (i == 6) {
    // Останавливаем таймер:
    clearInterval(id);
  }
  return i;
}
id = setInterval('i=vremya_proshlo(i, id)', 2000);
</script>

Более подробную информацию ищите по онлайн-справочникам.

Опубликовано 21-03-2013 в 13:56


Комментариев к записи: 2

  1. Пытался совместить ваши два примера,мне надо что бы страница при загрузке один раз обновилась и всё больше не обновлялась, а она постоянно обновляется через эти 5 сек шо в таймере, помогите пожалуйста

    function obnovit_stranicu() {
      location.reload();
    }
    setTimeout("obnovit_stranicu()", 5000);
    

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>











Свежие комментарии

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Последние твиты