Maison >interface Web >js tutoriel >Comment éviter le délai initial dans setInterval de JavaScript ?

Comment éviter le délai initial dans setInterval de JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-10 08:50:02744parcourir

How to Avoid the Initial Delay in JavaScript's setInterval?

Exécution retardée ou immédiate de setInterval

En JavaScript, la méthode setInterval est un outil précieux pour exécuter une fonction à intervalles réguliers. Cependant, par défaut, son exécution commence après un délai initial. Ce délai peut être indésirable dans certaines situations.

Solution : Invocation immédiate de la fonction

Pour pallier ce délai, une solution simple et efficace consiste à appeler la fonction manuellement avant de définir l'intervalle. Cette technique garantit que la fonction est exécutée immédiatement :

foo();
setInterval(foo, delay);

Méthode alternative : utilisation de setTimeout

Bien que l'invocation immédiate de la fonction résolve le problème, l'utilisation de setTimeout offre une flexibilité supplémentaire :

function foo() {
    // ...
    setTimeout(foo, delay);
}

foo();

Avantages de setTimeout :

  • Intervalle garanti : setTimeout garantit qu'il y a toujours un intervalle d'au moins quelques millisecondes de délai entre les appels de fonction.
  • Plus facile Annulation : Il est simple d'annuler la boucle en omettant simplement l'appel setTimeout lorsque des conditions spécifiques sont remplies. met.

Solution améliorée : expression de fonction immédiatement invoquée (IIFE)

Une manière encore plus concise d'y parvenir consiste à envelopper le code dans une IIFE, combinant définition de fonction et boucle automatique initiation :

(function foo() {
    // ...
    setTimeout(foo, delay);
})();

Conclusion

En tirant parti de l'invocation immédiate de la fonction ou de l'alternative setTimeout, il est possible de contrôler le timing d'exécution de la méthode setInterval, en garantissant que ses fonctionnalités s'alignent précisément avec les exigences de votre candidature.

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