Van egy JavaScript-kódom, amelyhez hozzá kell adnom egy alvás/várakozás funkciót. A kód, amit futtatok, már egy függvényben van, pl:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Úgy hallottam, hogy egy lehetséges megoldás lehet
setTimeout
de nem vagyok benne biztos, hogy ebben az esetben hogyan használhatnám.
PHP-t nem tudok használni, mivel a szerverem nem támogatja, bár a jQuery használata jó lenne.
A JS nem rendelkezik sleep funkcióval, hanem setTimeout() vagy setInterval() funkciókkal.
Ha a szünet után futtatandó kódot át tudod helyezni a setTimeout()
visszahívásba, akkor valami ilyesmit tudsz csinálni:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
lásd a példát itt :
Ez nem fogja megállítani a szkripted végrehajtását, de amíg a setTimeout()
egy aszinkron függvény, addig ez a kód
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
kiírja ezt a konzolra:
HELLO
DOG
THIS IS
(figyeljük meg, hogy a KUTYA kiírásra kerül a EZ VAN előtt)
A következő kóddal szimulálhatsz rövid ideig tartó alvást:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
most, ha 1 másodpercig akarsz aludni, csak használd a:
sleep(1000);
példa: http://jsfiddle.net/HrJku/1/
kérjük, vegye figyelembe, hogy ez a kód n milliszekundumig fogja lefoglalni a szkriptet. Ez nem csak a Javascript végrehajtását állítja le az oldaladon, hanem a böngésző implementációjától függően az oldal teljesen érzéketlenné válhat, és esetleg az egész böngészőt is érzéketlenné teheti. Más szóval ez szinte mindig rossz dolog.