Я немного поиграюсь с необработанными объектами XmlHttpRequestObjects + Comet Long. (Обычно я бы позволил 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, который проверяет status > 0
, потому что я обнаружил, что когда я покидаю страницу (просматривая что-то в другом месте или перезагружая ее), отправляется последний ненужный кометный вызов , [А в Firefox это даже вызывает серьезные проблемы при перезагрузке страницы, по какой-то причине я пока не до конца понимаю.]
Вопрос: Это status
проверка правильности решения этой проблемы или есть лучшее решение?