Maison > Article > interface Web > Comment puis-je ajuster dynamiquement l'intervalle setInterval en 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);
Cependant, l'utilisateur souhaitait ajuster dynamiquement cet intervalle en fonction d'un compteur de boucles. Le changer en :
var interval = setInterval(function() { ... }, 10*counter);
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);
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);
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!