Estoy utilizando setInterval(fname, 10000);
para llamar a una función cada 10 segundos en JavaScript. Es posible dejar de llamarla en algún evento?
Quiero que el usuario pueda detener la actualización repetida de los datos.
setInterval()
devuelve un ID de intervalo, que puede pasar a clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Consulte los documentos de setInterval()
y clearInterval()
.
Si estableces el valor de retorno de setInterval
a una variable, puedes usar clearInterval
para detenerlo.
var myTimer = setInterval(...);
clearInterval(myTimer);
Puedes establecer una nueva variable y hacer que se incremente en ++ (contar hasta uno) cada vez que se ejecute, luego uso una sentencia condicional para terminar:
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);
});
Espero que te sirva de ayuda y sea correcto.