2016-07-09 10 views
-4

Mit Javascript/einer anderen clientseitigen Skriptsprache Ich muss das Ergebnis einer http get Anfrage anzeigen und alle X Sekunden aktualisieren, ohne zu aktualisieren. Die API, mit der ich arbeite, ist extern und funktioniert wie folgt: Sie senden es eine Anfrage, keine Parameter, und es gibt eine Zahl zurück. Ich muss dies in einer statischen HTML-Site anzeigen und live alle 2 Sekunden aktualisieren.Live Update Anfrage erhalten

Bisher konnte ich Update mit Funktionen wie Math.random() und setInterval aktualisieren, aber mein Problem ist eine GET-Anfrage innerhalb des JavaScript, zu einer externen Domäne. Ich habe ein PHP-Skript arbeiten, die das Ergebnis liefert, aber ich weiß nicht, wie diese in die JS zu integrieren

+1

Willkommen bei SO. Bitte besuche die [Hilfe] und nimm die [Tour] um zu sehen wie und was zu fragen ist. TIPP: Sende Aufwand und Code. – mplungjan

Antwort

1

ich dringend Rat erneut um die Funktion aufzurufen innen der Erfolg des API-Aufrufs. Eine Lösung, die setInterval verwendet, kann die Site hämmern, selbst wenn Fehler auftreten. Auch kann die Anforderung länger als 2 Sekunden

Hier auszuführen Ich benutze jQuery der Einfachheit halber

Verwenden SetTimeout innerhalb des Erfolgs:

function getIt() { 
    $.get("url",function(data) { 
    $("#container").text(data); 
    setTimeout(getIt,2000); 
    }); 
} 
getIt(); 

Wenn die URL domänenübergreif ist, möchten Sie vielleicht aussehen in JSON und CORS: How to get a cross-origin resource sharing (CORS) post request working

+0

Also würde das funktionieren, wenn "url" eine externe Domain wäre? –

+0

Wenn die URL es erlaubt - d. H. CORS eingerichtet hat, damit Sie darauf zugreifen können oder JSONP erlaubt – mplungjan

-1

Gerade Ajax und setInterval() verwenden:

setInterval(function(){ 

//your Ajax call goes here 

}, 2000); 
+0

Verwenden Sie niemals Intervall auf Ajax. – mplungjan

+0

@mplungjan was ist der grund dafür, nicht zu tun, wie diese antwort suggeriert? Warum nicht Ajax innerhalb Intervall verwenden? – Rasclatt

+0

Weil Sie die Seite auch dann hämmern können, wenn es Fehler gibt. Auch die Anfrage kann länger als 2 Sekunden dauern, um auszuführen – mplungjan