Длительное объединение IE с приостановленным подключением XMLHttpRequest

#ajax #xmlhttprequest #comet #long-polling

#ajax #xmlhttprequest #comet #длительный опрос

Вопрос:

У меня хорошая проблема.

У меня есть приложение, которое приостанавливает запрос и передает данные. Клиентом будет IE6 , использующий длительный опрос.

В IE6 данные ответа XMLHttpRequest доступны только в состоянии ==4. поскольку мое приложение приостанавливает запрос на потоковую передачу данных, я не получу состояние == 4, пока не возобновлю запрос, поэтому я застряну в состоянии == 3.

в Firefox или Chrome, если я выполняю abort () в состоянии == 3, он переключится в состояние == 4 и завершится красиво, но в IE, если я выполняю abort (), состояние станет == 0. и я никогда не буду в состоянии == 4.

Я думал использовать тайм-аут, но похоже, что тайм-аут не существует в IE.

Редактировать

Я думаю, я могу исправить проблему, передав атрибут resumetimeout в запросе и создав таймер на сервере, который возобновит соединение.

Ответ №1:

с возможностью запуска на сервере, которая возобновит запрос, исправляет ограничение IE.

Ответ №2:

Некоторое время назад я потратил на то, чтобы столкнуться с этой проблемой, и я пришел к осознанию того, что IE начнет возвращать данные по мере загрузки после того, как будет загружен пороговый объем (я думаю, это было 512 байт). Итак, если вы просто отправите некоторое количество отступов в начале вашего ответа, IE начнет вести себя так же, как и другие браузеры.