Данная статья посвящена созданию искусственных задержек выполнения программного кода в языке 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>
Более подробную информацию ищите по онлайн-справочникам.
Пытался совместить ваши два примера,мне надо что бы страница при загрузке один раз обновилась и всё больше не обновлялась, а она постоянно обновляется через эти 5 сек шо в таймере, помогите пожалуйста
Вот одно из решений вашей задачки — https://red-book-cms.ru/poleznosti/javascript-obnovit-stranitsu-1-raz-tolko-posle-pervoy-zagruzki.html.
Если не нужен # на конце после обновления страницы, тогда почитайте про cookies и т.п.