Ik gebruik setInterval(fname, 10000);
om een functie elke 10 seconden aan te roepen in JavaScript. Is het mogelijk om te stoppen met het aanroepen van deze functie bij een bepaalde gebeurtenis?
Ik wil dat de gebruiker kan stoppen met het herhaaldelijk verversen van gegevens.
setInterval()
geeft een interval ID terug, die je kunt doorgeven aan clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Zie de docs voor setInterval()
en clearInterval()
.
Als je de return waarde van setInterval
op een variabele zet, kun je clearInterval
gebruiken om het te stoppen.
var myTimer = setInterval(...);
clearInterval(myTimer);
Je kunt een nieuwe variabele instellen en die elke keer dat hij loopt laten oplopen met ++ (tel één), dan gebruik ik een voorwaardelijke verklaring om hem te beëindigen:
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);
});
Ik hoop dat het helpt en dat het klopt.