Maison > interface Web > js tutoriel > le corps du texte

Comment puis-je ajuster dynamiquement l'intervalle setInterval en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-11-27 10:35:39
original
526 Les gens l'ont consulté

How Can I Dynamically Adjust the setInterval Interval in JavaScript?

Ajustement dynamique de l'intervalle SetInterval

Cette fonction JavaScript invoquait à l'origine SetInterval pour manipuler une chaîne à un intervalle fixe de 100 millisecondes :

var interval = setInterval(function() { ... }, 100);
Copier après la connexion

Cependant, l'utilisateur souhaitait ajuster dynamiquement cet intervalle en fonction d'un compteur de boucles. Le changer en :

var interval = setInterval(function() { ... }, 10*counter);
Copier après la connexion

s'est avéré inefficace.

Solution utilisant une fonction anonyme

Pour obtenir le comportement souhaité, une fonction anonyme peut être utilisée :

var counter = 10;
var myFunction = function(){
    clearInterval(interval);
    counter *= 10;
    interval = setInterval(myFunction, counter);
}
var interval = setInterval(myFunction, counter);
Copier après la connexion

Cette fonction efface à plusieurs reprises l'intervalle actuel, multiplie le compteur par 10 et réinitialise l'intervalle avec la valeur mise à jour.

Solution mise à jour utilisant setTimeout

Comme suggéré par A. Wolff, setTimeout propose une approche alternative qui élimine le besoin de clearInterval :

var counter = 10;
var myFunction = function() {
    counter *= 10;
    setTimeout(myFunction, counter);
}
setTimeout(myFunction, counter);
Copier après la connexion

Avec cette méthode, setTimeout planifie récursivement la fonction avec le nouvel intervalle.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal