Maison >interface Web >js tutoriel >Comment exécuter la fonction setInterval sans délai lors de la première exécution ?

Comment exécuter la fonction setInterval sans délai lors de la première exécution ?

DDD
DDDoriginal
2024-11-09 09:23:02461parcourir

How to Execute setInterval Function Without Delay on the First Run?

Exécuter la fonction setInterval sans délai lors de la première exécution

En JavaScript, la méthode setInterval planifie l'exécution d'une fonction à plusieurs reprises après un intervalle spécifié. Cependant, par défaut, il y a un délai avant la première exécution de la fonction.

Pour surmonter ce délai et exécuter la fonction immédiatement au premier appel, nous pouvons utiliser l'une des méthodes suivantes :

Méthode 1 : Appel direct de fonction

Cette approche consiste à appeler la fonction manuellement avant d'appeler setInterval.

foo();
setInterval(foo, delay);

Méthode 2 : Fonction à déclenchement automatique Utilisation de setTimeout

Cette technique évite d'utiliser setInterval et s'appuie à la place sur la fonction setTimeout pour déclencher les exécutions ultérieures.

function foo() {
    // Do stuff...

    // Schedule next execution
    setTimeout(foo, delay);
}

// Start the loop
foo();

setTimeout garantit un intervalle minimum entre les appels de fonction, éliminant ainsi le problème potentiel. d'exécutions de fonctions multiples s'accumulant sans délai.

Méthode 3 : Expression de fonction immédiatement invoquée (IIFE)

Pour simplifier le processus, nous pouvons utiliser une IIFE pour définir le fonction, appelez-la initialement et démarrez la boucle d'un seul coup.

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

Cette approche offre l'avantage de définir la fonction et de lancer la boucle simultanément.

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