JavaScript: Code wird jede Minute ausgeführt

75

Gibt es eine Möglichkeit, JS-Code alle 60 Sekunden auszuführen? Ich denke, es könnte mit einer whileSchleife möglich sein, aber gibt es eine bessere Lösung? JQuery willkommen, wie immer.

Blaues Feuer
quelle
setInterval (Ausdruck, Zeitüberschreitung); führt den Code / die Funktion in Intervallen mit der Länge des Zeitlimits zwischen ihnen aus.
Jai
Mögliches Duplikat des Aufrufs einer Funktion alle 60 Sekunden
Heretic Monkey

Antworten:

142

Verwenden von setInterval :

setInterval(function() {
    // your code goes here...
}, 60 * 1000); // 60 * 1000 milsec

Die Funktion gibt eine ID zurück, mit der Sie Ihr Intervall mit clearInterval löschen können :

var timerID = setInterval(function() {
    // your code goes here...
}, 60 * 1000); 

clearInterval(timerID); // The setInterval it cleared and doesn't run anymore.

Eine "Schwester" -Funktion ist setTimeout / clearTimeout .


Wenn Sie eine Funktion auf page init und dann 60 Sekunden danach, 120 Sekunden danach, ... ausführen möchten:

function fn60sec() {
    // runs every 60 sec and runs on init.
}
fn60sec();
setInterval(fn60sec, 60*1000);
andlrc
quelle
4
+1 für 60 * 1000, aber es ist auch eine gute Idee, die Funktion außerhalb zu definieren, anstatt eine anonyme Funktion zu übergeben.
Adi
1
Frage: Wenn ich das sage, wird der Code beim Laden der Seite ausgeführt oder 60 Sekunden nach dem Laden?
Bluefire
2
@Bluefire läuft 60 Sekunden nach init
andlrc
12

Sie könnten dafür verwenden setInterval.

<script type="text/javascript">
function myFunction () {
    console.log('Executed!');
}

var interval = setInterval(function () { myFunction(); }, 60000);
</script>

Deaktivieren Sie den Timer durch Einstellen clearInterval(interval).

Siehe diese Geige: http://jsfiddle.net/p6NJt/2/

Knelis
quelle