J'utilise setInterval(fname, 10000);
pour appeler une fonction toutes les 10 secondes en JavaScript. Est-il possible d'arrêter de l'appeler lors d'un événement ?
Je veux que l'utilisateur puisse arrêter le rafraîchissement répété des données.
setInterval()
renvoie un ID d'intervalle, que vous pouvez passer à clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Voir la documentation sur setInterval()
et clearInterval()
.
Si vous fixez la valeur de retour de setInterval
à une variable, vous pouvez utiliser clearInterval
pour l'arrêter.
var myTimer = setInterval(...);
clearInterval(myTimer);
Vous pouvez définir une nouvelle variable et la faire incrémenter de ++ (compter jusqu'à un) à chaque exécution, puis utiliser une instruction conditionnelle pour y mettre fin :
var intervalId = null;
var varCounter = 0;
var varName = function(){
if(varCounter <= 10) {
varCounter++;
/* your code goes here */
} else {
clearInterval(intervalId);
}
};
$(document).ready(function(){
intervalId = setInterval(varName, 10000);
});
J'espère que cela vous aidera et que vous avez raison.