JavaScript sleep / wait перед продолжением [дубликат]
этот вопрос уже есть ответ здесь:
что такое JavaScript-версия sleep ()?
69 ответов
у меня есть код JavaScript, который мне нужно добавить функцию сна/ожидания. Код, который я запускаю, уже находится в функции, например:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Я слышал, что возможное решение может включить
setTimeout
но я не уверен, как использовать его в этом случае.
Я не могу использовать PHP, так как мой сервер не поддерживает его, Хотя использование jQuery было бы прекрасно.
1 ответ:
JS не имеет функции сна, он имеет setTimeout () или setInterval () функции.
если вы можете переместить код, который вам нужно запустить после паузы в
setTimeout()обратного вызова, вы можете сделать что-то вроде этого://code before the pause setTimeout(function(){ //do what you need here }, 2000);смотрите пример здесь:http://jsfiddle.net/9LZQp/
это не остановит выполнение вашего скрипта, но пока
setTimeout()- это асинхронная функция, этот кодconsole.log("HELLO"); setTimeout(function(){ console.log("THIS IS"); }, 2000); console.log("DOG");напечатает это в консоли:
HELLO DOG THIS IS(заметим, что собака печати ЭТО)
вы можете использовать следующий код для имитации сна в течение коротких периодов времени:
function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds){ break; } } }теперь, если вы хотите спать в течение 1 секунды, просто использовать:
sleep(1000);пример:http://jsfiddle.net/HrJku/1/
пожалуйста, обратите внимание это этот код будет держать ваш сценарий занят N миллисекунд. Это не только остановит выполнение Javascript на Вашей странице, но в зависимости от реализации браузера, возможно, сделает страницу полностью невосприимчивой и, возможно, сделает весь браузер невосприимчивым. Другими словами, это почти всегда неправильно.
Comments