Eu estou utilizando setInterval(fname, 10000);
para chamar uma função a cada 10 segundos em JavaScript. É possível parar de chamá-la em algum evento?
Quero que o usuário seja capaz de parar a atualização repetida de dados.
setInterval()
retorna um ID de intervalo, que você pode passar para clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Veja os documentos para setInterval()
e clearInterval()
.
Se você definir o valor de retorno do setInterval
para uma variável, você pode utilizar o clearInterval
para pará-lo.
var myTimer = setInterval(...);
clearInterval(myTimer);
Você pode definir uma nova variável e fazer com que ela seja incrementada por ++ (contar até um) toda vez que ela rodar, então eu uso uma declaração condicional para terminá-la:
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 ajude e que esteja certo.