Ich verwende setInterval(fname, 10000);
, um eine Funktion alle 10 Sekunden in JavaScript aufzurufen. Ist es möglich, den Aufruf bei einem bestimmten Ereignis zu beenden?
Ich möchte, dass der Benutzer die wiederholte Aktualisierung der Daten stoppen kann.
Die Funktion setInterval()
gibt eine Intervall-ID zurück, die Sie an clearInterval()
übergeben können:
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
Siehe die Dokumentationen für setInterval()
und clearInterval()
.
Wenn Sie den Rückgabewert von setInterval
auf eine Variable setzen, können Sie clearInterval
verwenden, um es zu beenden.
var myTimer = setInterval(...);
clearInterval(myTimer);
Sie können eine neue Variable setzen und sie bei jedem Durchlauf um ++ (um eins hochzählen) inkrementieren lassen, dann verwende ich eine bedingte Anweisung, um sie zu beenden:
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);
});
Ich hoffe, das hilft und ist richtig.