Maison >interface Web >js tutoriel >Comment puis-je exécuter de manière récursive une fonction JavaScript à intervalles réguliers ?

Comment puis-je exécuter de manière récursive une fonction JavaScript à intervalles réguliers ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-05 08:56:101011parcourir

How Can I Recursively Execute a JavaScript Function at Regular Intervals?

Exécuter une fonction de manière récursive à des intervalles de temps spécifiés

En JavaScript, la fonction setTimeout() vous permet de planifier un appel de fonction à une heure prédéfinie. Ceci est utile lorsque vous devez effectuer une action après un délai spécifique. Cependant, que se passe-t-il si vous souhaitez exécuter une fonction de manière répétée à intervalles réguliers ?

Une approche consiste à utiliser la fonction setInterval() :

setInterval(function, delay)

Cette fonction appelle en continu la fonction de rappel spécifiée à l'intervalle de temps donné. Cependant, cette méthode peut rencontrer des problèmes si le temps d'exécution de la fonction dépasse l'intervalle.

Une approche plus fiable consiste à utiliser setTimeout() en conjonction avec une fonction anonyme auto-exécutable :

(function(){
    // Your code goes here
    setTimeout(arguments.callee, 60000);
})();

Cette fonction planifie le prochain appel à la même fonction après l'intervalle spécifié. Cela garantit également que l’appel suivant ne sera pas effectué tant que l’exécution de la fonction en cours n’est pas terminée. La référence arguments.callee est utilisée pour appeler à nouveau la fonction, mais elle est obsolète dans Ecmascript 5. Une meilleure alternative consiste à utiliser une fonction nommée et à la référencer dans l'appel setTimeout.

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