Więcej
JavaScript sleep/wait przed kontynuacją
Mam kod JavaScript, do którego muszę dodać funkcję sleep/wait. Kod, który uruchamiam jest już w funkcji, np:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Słyszałem, że możliwe rozwiązanie może zawierać
setTimeout
ale nie jestem pewien, jak go użyć w tym przypadku.
Nie mogę użyć PHP, ponieważ mój serwer go nie obsługuje, chociaż użycie jQuery byłoby w porządku.
291
1
JS nie posiada funkcji sleep, posiada za to funkcje setTimeout() lub setInterval().
Jeśli możesz przenieść kod, który musisz uruchomić po pauzie do wywołania zwrotnego
setTimeout()
, możesz zrobić coś takiego:zobacz przykład tutaj : http://jsfiddle.net/9LZQp/
To nie zatrzyma wykonywania twojego skryptu, ale tak długo jak
setTimeout()
jest funkcją asynchroniczną, ten kodwydrukuje to w konsoli:
(zauważ, że DOG jest wypisany przed THIS IS)
Możesz użyć poniższego kodu do symulowania uśpienia przez krótki okres czasu:
teraz, jeśli chcesz spać przez 1 sekundę, po prostu użyj:
przykład: http://jsfiddle.net/HrJku/1/
Proszę zauważyć, że ten kod spowoduje, że skrypt będzie zajęty przez n milisekund. To nie tylko zatrzyma wykonywanie skryptów Javascript na twojej stronie, ale w zależności od implementacji przeglądarki, może spowodować, że strona stanie się całkowicie nieresponsywna, a być może cała przeglądarka przestanie reagować. Innymi słowy jest to prawie zawsze zła rzecz do zrobienia.