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