Ich spiele ein wenig mit rohen XmlHttpRequestObjects + Comet Long Polling. (. Normalerweise würde ich lassen GWT oder ein anderer Rahmen Griff für mich, aber ich will mehr darüber erfahren, es)Comet (lange Polling) und XmlHttpRequest Status
Ich schrieb den folgenden Code:
function longPoll() {
var xhr = createXHR(); // Creates an XmlHttpRequestObject
xhr.open('GET', 'LongPollServlet', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
...
}
if (xhr.status > 0) {
longPoll();
}
}
}
xhr.send(null);
}
...
<body onload="javascript:longPoll()">...
Ich wickelte den longPoll()
Anruf in Eine if-Anweisung, die nach status > 0
sucht, weil ich festgestellt habe, dass, wenn ich die Seite verlasse (indem ich irgendwo anders blogge oder sie neu lade), ein letzter unnötiger Komet-Aufruf gesendet wird. [Und auf Firefox, es sogar schwere Probleme verursacht, wenn eine Seite neu geladen zu tun, ich aus irgendeinem Grunde noch nicht vollständig verstehen.]
Frage: Ist die status
die richtige Art und Weise zu überprüfen, dieses Problem zu umgehen, oder gibt es eine bessere lösung?
Könnten Sie nicht nur eine vorhandene Implementierung, z. GWT wie du erwähnt hast, jquery, etc? – fig
@ fig-gnuton: Ich bin nicht sicher, ob es wirklich einfach ist, generierten JavaScript-Code zu folgen (Ich bin kein JavaScript-Guru ...) –
Wenn Sie genug wissen, um mit XHR zu spielen, werden Sie habe kein Problem, Jquery oder andere Bibliotheken zu betrachten. Sie haben Quellenversionen, die vollständig kommentiert sind. – fig