Я делал подобные вещи раньше, и ответ на вопрос довольно прост: это зависит от браузера и от того, как пользователь его настроил.
В FF есть настройка где-то в about:config
, которая управляет этим (я точно забыл, что это за настройка). Время ожидания IE по умолчанию контролируется в реестре и задокументировано здесь . Я никогда не находил ответ для Chrome или Opera - я не думаю, что это управляемо. Похоже, что Opera сдается после того, как в течение 20 секунд не было получено никаких данных, но, похоже, она также несколько меняется - не знаю почему.
Я пришел к выводу, что лучшее, что можно сделать здесь, это спроектировать вашу архитектуру, чтобы страница периодически перезагружалась или, если вы используете AJAX, периодически отменяли запрос и запускали новый (я обнаружил, что 1 минута работает хорошо). Кроме того, продолжайте отправлять небольшие кусочки данных в браузер каждые несколько секунд, так как это не даст Opera сдаться. Вы можете просто нажать событие javascript:void(0);
, чтобы сохранить соединение, но на самом деле ничего не делать на стороне клиента.
Чтобы ответить на ваш дополнительный вопрос: Ничего. Браузер просто закрывает TCP-соединение и дальнейшие данные не передаются. То, как сервер справляется с этим, больше не касается браузера.