JS hat keine Sleep-Funktion, sondern setTimeout() oder setInterval() Funktionen.
Wenn Sie den Code, der nach der Pause ausgeführt werden soll, in den setTimeout()
-Callback verschieben können, können Sie so etwas tun:
//Code vor der Pause
setTimeout(function(){
//Hier das tun, was du brauchst
}, 2000);
Beispiel hier ansehen: http://jsfiddle.net/9LZQp/
Dies unterbricht nicht die Ausführung Ihres Skripts, aber aufgrund der Tatsache, dass setTimeout()
eine asynchrone Funktion ist, wird dieser Code
console.log("HALLO");
setTimeout(function(){
console.log("DIES IST");
}, 2000);
console.log("HUND");
wird dies in der Konsole ausgeben:
HALLO
HUND
DIES IST
(beachten Sie, dass HUND vor DIES IST gedruckt wird)
Sie können den folgenden Code verwenden, um kurze Zeitintervalle zu simulieren:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
Jetzt, wenn Sie für 1 Sekunde pausieren möchten, verwenden Sie einfach:
sleep(1000);
Beispiel: http://jsfiddle.net/HrJku/1/
Bitte beachten Sie, dass dieser Code Ihr Skript für n Millisekunden beschäftigen wird. Dies stoppt nicht nur die Ausführung von JavaScript auf Ihrer Seite, sondern kann je nach Browserimplementierung die Seite möglicherweise vollständig unresponsive machen und möglicherweise den gesamten Browser unresponsive machen. Mit anderen Worten, dies ist fast immer das falsche Vorgehen.