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