Maison >interface Web >js tutoriel >Pourquoi `setTimeout(GetUsersNumber(), 5000)` s'exécute-t-il immédiatement au lieu d'après 5 secondes ?

Pourquoi `setTimeout(GetUsersNumber(), 5000)` s'exécute-t-il immédiatement au lieu d'après 5 secondes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 07:08:09747parcourir

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

Appels de fonction vs objets de fonction dans setTimeout

Pour éviter de surcharger le serveur, un développeur Web a l'intention de mettre à jour une valeur de page toutes les 5 secondes en utilisant setTimeout(). Cependant, la fonction dans le code semble être déclenchée immédiatement au lieu d'être retardée.

Dans le code fourni :

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

L'erreur réside dans la distinction entre les appels de fonction et les objets de fonction dans JavaScript. Dans ce cas, les parenthèses sont incluses après le nom de la fonction, indiquant un appel de fonction. Pour utiliser setTimeout correctement, l'objet fonction est requis, qui est défini sans parenthèses.

En modifiant le code en :

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

setTimeout invoquera désormais l'objet fonction GetUsersNumber après le délai spécifié. de 5 secondes, garantissant que la valeur de la page est mise à jour à l'intervalle souhaité sans surcharger le serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn