JSONP Lange Polling immer Laden
-
23-09-2019 - |
Frage
Ich mache lange Polling mit JSONP und firefox ständig öffnen die „Laden“ Spinner machen die Seite nach oben scheint, wie es nicht fertig geladen hat. Gibt es eine Möglichkeit, dies zu unterdrücken?
Man hat mir gesagt, dass das umkreiste Team Hacks zur Unterdrückung dieses hat, aber auf der Suche durch die Orbited.js Code kann ich nicht herausfinden, was sie sind. Jede Hilfe wäre sehr geschätzt.
Lösung
Dies ist eine einfache Lösung ist .. Alles, was Sie tun müssen, ist Ihre Abfrageanforderung mit einem setTimeout starten ..
Hier einige Code, den ich verwenden .. Es nutzt jQuery, aber ich nehme an, Sie können herausfinden, was Sie brauchen, um und nutzen Sie Ihre Bibliothek, das gleiche zu tun.
<script type="text/javascript">
function poll(){
$.getJSON('/updates', function(json){
//reconnect since we successfully received data and disconnected
poll();
//add something here to do whatever with the recieved data
});
}
/*call the poll function after document has loaded with setTimeout
if called before the document finishes loading completely it will
cause a constant loading indication*/
setTimeout(poll, 1);
</script>
Andere Tipps
Ich habe keine Antwort, aber ich habe eine vorgeschlagene Alternative. Jemand anderes fragte nur eine ähnliche Frage und hier ist meine Antwort .
Grundsätzlich, wenn Sie die Kontrolle über den Server haben, ist die einfachste Lösung ist Cross-Origin Resource Sharing-Header OK Cross-Domain-XMLHttpRequest zu verwenden und zu JSONP auf alte Browser fallen zurück.
Ich habe eine einigermaßen vollständige Kompatibilitätstabelle (alle userscript-fähigen Browser) für CORS als Teil der Antwort bereitgestellt I verbunden sind, sowie eine allgemeinere auf Wikipedia .