Вопрос

Я играю немного с Raw XMLHTTTRECESTOCTOBJECTS + COMET DLAGE PELING. (Обычно я позволил 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, потому что я столкнулся с тем, что когда я покину страницу (просматривая где-то еще, или перезагружая его), отправляется последний ненужный звонок Comet. И на Firefox, он даже вызывает серьезные проблемы при выполнении страницы перезагрузки, по какой-то причине я пока не полностью понимаю.

Вопрос: В том, что status Проверьте правильный способ справиться с этой проблемой или есть лучшее решение?

Это было полезно?

Решение

Мой нынешний ответ - пока доказал ложь - это, что решение правильно.

Другие советы

Мне нравится простота этой петли .... Я думаю, что скрипт бокового сервера должен спать или поток петлей до тех пор, пока он не получает новые данные до того, как он не считается длительным опросом, хотя это просто нормальное опрос. Я бы также добавил что-то, чтобы проверить, не удается ли неудачу заявки. упаковка, что в попытке ловить Блох должен сделать трюк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top