it-swarm.com.de

So erstellen Sie eine JavaScript-Verzögerungsfunktion

Ich habe eine Javascript-Datei, und an einigen Stellen möchte ich eine kleine Verzögerung hinzufügen. Das Skript würde diesen Punkt erreichen, 3 Sekunden warten und dann mit dem restlichen Code fortfahren. Am besten habe ich daran gedacht, eine Funktion zu erstellen, die ich von überall im Skript aufrufen kann.

function startDelay(lengthOfDelay)
{
//code to make it delay for lengthOfDelay amount of time
}

Ich kann jedoch keinen Weg finden, den Code zu implementieren, damit er warten kann. Ich habe mir setTimeout angesehen, aber Sie mussten die Funktion hart codieren, was für mich nicht gut war.

Gibt es eine Möglichkeit, wie ich das Skript dazu bringen kann, für ein paar Sekunden Pause zu machen? Ich habe kein Problem mit dem Einfrieren der Benutzeroberfläche, während der Code angehalten ist.

Wenn nicht, gibt es eine Möglichkeit, die PHP sleep () zu verwenden, um dies zu erreichen? (Ich weiß, dass PHP serverseitig und Javascript clientseitig ist, aber vielleicht gibt es eine Möglichkeit, von der ich noch nichts gehört habe.)

17
user2370460

Sie müssen keine anonyme Funktion mit setTimeout verwenden. Sie können so etwas tun:

setTimeout(doSomething, 3000);

function doSomething() {
   //do whatever you want here
}
41
Kassem

Ich habe diese Antwort gerade in einem anderen Forum gefunden: JavaScript sleep/wait, bevor Sie fortfahren

Danke für all deine Antworten.

3
user2370460

Ah ja. Willkommen bei der asynchronen Ausführung.

Wenn Sie ein Skript pausieren, reagiert der Browser und die Seite drei Sekunden lang nicht. Dies ist für Web-Apps schrecklich und wird daher nicht unterstützt.

Stattdessen müssen Sie "ereignisbasiert" denken. Verwenden Sie setTimeout, um nach einer bestimmten Zeit eine Funktion aufzurufen, die das JavaScript auf dieser Seite weiterhin ausführt.

2
DanRedux

Sie können eine Verzögerung mit dem folgenden Beispiel erstellen

setInterval(function(){alert("Hello")},3000);

3000 durch # von Millisekunden ersetzen

Sie können den Inhalt dessen, was Sie ausführen möchten, in die Funktion einfügen.

0
CBC_NS