Сколько времени до того, как запрос браузера умирает? - PullRequest
0 голосов
/ 15 августа 2011

Я пытаюсь внедрить некоторую технологию push в моём приложении.Я намерен использовать для этого node.js, но не думаю, что это актуально для моего вопроса.Что я сделаю, так это в основном продолжительный опрос на сервере, и, поскольку я понимаю, как работает nodejs, управляемый событиями, мне не нужно сильно заботиться о серверной части всего этого.на стороне клиента: через сколько времени браузер перестанет ждать ответа?Это вопрос программирования, потому что мне нужно выпустить ответ до того, как это время будет потрачено, чтобы перезапустить длинный опрос.

Дополнительный вопрос: когда браузер перестает ждать, какой ответ он дает на запрос

1 Ответ

0 голосов
/ 17 августа 2011

Я делал подобные вещи раньше, и ответ на вопрос довольно прост: это зависит от браузера и от того, как пользователь его настроил.

В FF есть настройка где-то в about:config, которая управляет этим (я точно забыл, что это за настройка). Время ожидания IE по умолчанию контролируется в реестре и задокументировано здесь . Я никогда не находил ответ для Chrome или Opera - я не думаю, что это управляемо. Похоже, что Opera сдается после того, как в течение 20 секунд не было получено никаких данных, но, похоже, она также несколько меняется - не знаю почему.

Я пришел к выводу, что лучшее, что можно сделать здесь, это спроектировать вашу архитектуру, чтобы страница периодически перезагружалась или, если вы используете AJAX, периодически отменяли запрос и запускали новый (я обнаружил, что 1 минута работает хорошо). Кроме того, продолжайте отправлять небольшие кусочки данных в браузер каждые несколько секунд, так как это не даст Opera сдаться. Вы можете просто нажать событие javascript:void(0);, чтобы сохранить соединение, но на самом деле ничего не делать на стороне клиента.

Чтобы ответить на ваш дополнительный вопрос: Ничего. Браузер просто закрывает TCP-соединение и дальнейшие данные не передаются. То, как сервер справляется с этим, больше не касается браузера.

...