Sto usando setInterval(fname, 10000);
per chiamare una funzione ogni 10 secondi in JavaScript. È possibile smettere di chiamarla su qualche evento?
Voglio che l'utente sia in grado di fermare il refresh ripetuto dei dati.
setInterval()
restituisce un ID di intervallo, che puoi passare a clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Vedi i documenti per setInterval()
e clearInterval()
.
Se impostate il valore di ritorno di setInterval
su una variabile, potete usare clearInterval
per fermarlo.
var myTimer = setInterval(...);
clearInterval(myTimer);
Si può impostare una nuova variabile e farla incrementare di ++ (contare su uno) ogni volta che viene eseguita, poi uso una dichiarazione condizionale per terminarla:
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);
});
Spero che sia d'aiuto e che sia giusto.