Jeg bruker setInterval(fname, 10000);
for å kalle en funksjon hvert 10. sekund i JavaScript. Er det mulig å slutte å kalle den på en eller annen hendelse?
Jeg vil at brukeren skal kunne stoppe den gjentatte oppdateringen av data.
setInterval()
returnerer en intervall-ID som du kan sende til clearInterval()
:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Se dokumentasjonen for setInterval()
og clearInterval()
.
Hvis du setter returverdien til setInterval
til en variabel, kan du bruke clearInterval
til å stoppe den.
var myTimer = setInterval(...);
clearInterval(myTimer);
Du kan angi en ny variabel og la den inkrementeres med ++ (telle opp én) hver gang den kjøres, og så bruker jeg en betinget setning for å avslutte den:
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);
});
Jeg håper det hjelper og at det er riktig.