JavaScript скрипты
Приостановление работы скрипта JavaScript на некоторое время
Сразу хочу отметить, что использование этой функци приводит к "Замиранию" броузера на выбранное время. Это обуславливается тем, что происходит выполнение JavaScript скрипта, который мы "приостановили", а броузер пока не выполнит весь скрипт до конца, не успокоится.
В данном случае мы тормозим работу скрипта при помощи циклической функции, возврат из которой происходит после того, как пройдет указанное время.
function delay(ms) {
// Защита от некорректных данных
if (typeof ms == "undefined") return;
ms = parseInt(ms);
if (ms <= 0) return;
// Задаем точки начала измерения
var before = after = new Date();
before = before.getTime();
after = after.getTime();
// В цикле меняем вторую точку, сравнивая разницу с аргуметом
while (after < before + ms) {
after = new Date();
after = after.getTime();
}
}
Если вам надо просто отсрочить выполнение некоторой функции, следует использовать метод setTimeout. ПРиведенный пример следует использовать только в случаях, когда необходимо приостановить работу скрипта внутри фенкции, и желательно не на длительный срок.