Heim >Web-Frontend >js-Tutorial >Warum wird „setTimeout(GetUsersNumber(), 5000)' sofort und nicht erst nach 5 Sekunden ausgeführt?

Warum wird „setTimeout(GetUsersNumber(), 5000)' sofort und nicht erst nach 5 Sekunden ausgeführt?

Linda Hamilton
Linda HamiltonOriginal
2024-12-02 07:08:09683Durchsuche

Why Does `setTimeout(GetUsersNumber(), 5000)` Execute Immediately Instead of After 5 Seconds?

Funktionsaufrufe vs. Funktionsobjekte in setTimeout

Um eine Überlastung des Servers zu vermeiden, möchte ein Webentwickler alle 5 Sekunden einen Seitenwert aktualisieren setTimeout(). Allerdings scheint die Funktion im Code sofort ausgelöst zu werden, anstatt verzögert zu werden.

Im bereitgestellten Code:

<pre class="brush:php;toolbar:false">
setTimeout(GetUsersNumber(), 50000);

Der Fehler liegt in der Unterscheidung zwischen Funktionsaufrufen und Funktionsobjekten in JavaScript. In diesem Fall werden die Klammern nach dem Funktionsnamen eingefügt, um einen Funktionsaufruf anzuzeigen. Um setTimeout korrekt zu verwenden, ist das Funktionsobjekt erforderlich, das ohne Klammern definiert ist.

Durch Ändern des Codes in:

<pre class="brush:php;toolbar:false">
setTimeout(GetUsersNumber, 5000);

setTimeout ruft nun nach der angegebenen Verzögerung das Funktionsobjekt GetUsersNumber auf von 5 Sekunden, um sicherzustellen, dass der Seitenwert im gewünschten Intervall aktualisiert wird, ohne den Server zu überlasten.

Das obige ist der detaillierte Inhalt vonWarum wird „setTimeout(GetUsersNumber(), 5000)' sofort und nicht erst nach 5 Sekunden ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn