Задержка в 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>

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

PORNOSEKSXXX

  • Администратор: к записи Согласен. »
  • Аптоний: к записи боты спутника жрут слишком много CPU и индексируют »
  • Администратор: к записи На исходном примере все работает. Откройте отладчи »
  • мика: к записи Очень полезная статья, все сделал как нужно по ней »
  • трансферы футбола: к записи Спасибо) работает!))) помогло »
  • Alex: к записи Спасибо за инфу, друг. »
  • Kuzma: к записи Да он закрывает прелоудер грузится но не убирается »

Статистика спама

Akismet заблокировал 37 434 спамеров

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

Твиты пользователя @red_book_cms