Turiu "JavaScript" kodą, į kurį reikia įtraukti miego/laukimo funkciją. Mano vykdomas kodas jau yra funkcijoje, pvz:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Girdėjau, kad galimas sprendimas galėtų būti toks
setTimeout
tačiau nesu tikras, kaip jį naudoti šiuo atveju.
Negaliu naudoti PHP, nes mano serveris jo nepalaiko, nors jQuery būtų gerai.
JS neturi miego funkcijos, ji turi setTimeout() arba setInterval() funkcijas.
Jei kodą, kurį reikia paleisti po pauzės, perkelsite į setTimeout()
grįžtamąjį ryšį, galėsite padaryti maždaug taip:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
žr. pavyzdį čia :
Tai nesustabdys jūsų scenarijaus vykdymo, bet jei setTimeout()
yra asinchroninė funkcija, šis kodas
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
tai bus išspausdinta konsolėje:
HELLO
DOG
THIS IS
(atkreipkite dėmesį, kad DOG spausdinamas prieš THIS IS)
Norėdami imituoti trumpalaikį miegą, galite naudoti toliau pateiktą kodą:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
dabar, jei norite miegoti 1 sekundę, tiesiog naudokite:
sleep(1000);
pavyzdys: http://jsfiddle.net/HrJku/1/
Atkreipkite dėmesį, kad šis kodas užims jūsų scenarijų n milisekundžių. Tai ne tik sustabdys Javascript vykdymą jūsų puslapyje, bet, priklausomai nuo naršyklės realizacijos, puslapis gali tapti visiškai nereaguojančiu, o galbūt ir visa naršyklė gali tapti nereaguojančia. Kitaip tariant, tai beveik visada yra netinkamas veiksmas.