私は生のXmlHttpRequestObjects+CometLongPollingで少し遊んでいます。(通常、GWTまたは別のフレームワークにこれを処理させますが、それについてもっと知りたいと思います。)
私は次のコードを書きました:
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()">...
遭遇したため、ページを離れるときに(別の場所を参照するか、ページをリロードすることによって)、最後の不要な彗星呼び出しが送信されることlongPoll()
を確認するifステートメントで呼び出しをラップしました。[そしてFirefoxでは、ページのリロードを行うときに深刻な問題を引き起こすことさえあります。何らかの理由で、私はまだ完全には理解していません。]status > 0
質問:status
それはこの問題を処理する正しい方法をチェックしますか、それともより良い解決策がありますか?