2016-11-21 1 views
0

Ich bin ziemlich neu in JavaScript, und ich lerne es durch P5 und Videos von Daniel Shiffman.JavaScript - Tun Sie alle n Sekunden etwas

Ich habe nach einer Möglichkeit gesucht, ein Programm jede Minute oder so zu aktualisieren, dass eine Wetter-API überprüft, so dass ich die Seite nicht selbst aktualisieren muss.

Ich bin mir bewusst, dass es hier bereits Antworten auf diese Frage gibt, aber keine von ihnen ergibt für mich Sinn, da ich für JS sehr neu bin.

Also, wenn Sie es mit einer ELI5 ("Erklären Sie es, wie ich bin fünf") Beschreibung, die wäre großartig beantworten könnte.

+1

Javascript Timer würde eine perfekte Wahl hier ... Check setInterval und setTimeout – Geeky

+4

Sie auf 'SetTimeout lesen müssen()' und 'setInterval()'? – Pointy

+0

Siehe [* MDN: JavaScript-Timer *] (https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Timers). – RobG

Antwort

6

setInterval() ist Ihre einfachste Option.

einen Blick auf diesem einfachen Beispiel:

// Will execute myCallback every 0.5 seconds 
var intervalID = window.setInterval(myCallback, 500); 

function myCallback() { 
// Your code here 
} 

Weitere Informationen und weitere Beispiele finden Sie hier: https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval (https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval)

+0

Danke für die Hilfe! –

0

In Plain-Vanilla-Javascript, würden Sie setInterval verwenden:

var intervalID = window.setInterval(checkWeatherAPI, 60000); 

function checkWeatherAPI() { 
    // go check API 
    console.log("checking weather API"); 
} 

Wenn Sie das oben genannte ausführen würden, würde die Callback-Funktion: checkWeatherAPI einmal pro Minute oder 60.000 Millis ausgeführt werden ekunden eingestellt für immer, eine vollständige Dokumentation hier: WindwTimers.setInterval

Um das Intervall zu stoppen würden Sie einfach diese Zeile aus:

window.clearInterval(intervalID); 
0

Die Wahl, ob setInterval ODER setTimeout auf Ihren Bedarf basiert und Anforderung als ein wenig über die Differenz unten erklärt .

setInterval wird unabhängig von der Zeit von der API aufgerufen werden. Für eine Instanz setzen Sie einen API-Aufruf alle 5 Sekunden und Ihr API-Aufruf dauert 6 Sekunden aufgrund der Netzwerklatenz oder Serverlatenz. Der unter setInterval löst den zweiten API-Aufruf aus, bevor die erste API abgeschlossen wird.

var timer = setInterval(callAPI, 5000); 

function callAPI() { 
    // TO DO 
    triggerXhrRequest(function(success){ 

    }); 
} 

Stattdessen, wenn Sie eine andere API-Aufruf nach 5 Sekunden ausgelöst werden soll, sobald die erste API-Aufruf abgeschlossen haben, können Sie sich besser setTimeout wie unten verwenden.

var timer = setTimeout(callAPI, 5000); 

function callAPI() { 
    // TO DO 
    triggerXhrRequest(function(success){ 
     timer = setTimeout(callAPI, 5000); 
    }); 
} 

setTimeout wird einmal nach n th Sekunden aufgerufen werden. So können Sie steuern, wann der nächste wie oben genannt aufgerufen werden kann.

MDN Dokumentation

setTimeout

setInterval

0
function doThings() { 
    //the things i want to happen (or increment) 
} 

setTimeout(function() { 
    doThings(); 
}, 1000);//milliseconds 
Verwandte Themen