Ajax-соединение отключается в какой-то момент - PullRequest
1 голос
/ 02 марта 2011

Мой коллега сказал мне, что соединение AJAX живо, пока пользователь не закроет свой браузер.Насколько я знаю, ajax-соединение закрывает соединение, когда его запрос завершен.Я проверил его с помощью Firebug и инструмента мониторинга HTTP, и заметил, что AJAX-соединение закрывается само собой.

Правильно ли он ????

Ответы [ 5 ]

3 голосов
/ 02 марта 2011

Ajax, как и любой другой запрос, после завершения соединения закрывается.Ваш коллега ошибается.

Примечание. Существуют типы соединений, которые позволяют сохранять соединение открытым на неопределенное время

1 голос
/ 02 марта 2011

Соединения Ajax закрываются после получения данных или если вы закрываете вкладку, соединения принудительно закрываются.

Здесь описан жизненный цикл Ajax.

1 голос
/ 02 марта 2011

Разбейте, что такое AJAX - и XMLHttpRequest. Это соединение с конечной точкой URI для какого-либо ресурса (изображения, текста и т. Д.). Ваш браузер закрывает HTTP-соединение, как только оно выполнено.

0 голосов
/ 05 января 2017

Используя JQuery для выполнения запросов AJAX, некоторые соединения поддерживаются до следующего вызова AJAX. Это может стать реальной проблемой, когда сервер держит потоки открытыми, пока не сработает событие закрытия ответа.

0 голосов
/ 30 мая 2013

Опоздал на вечеринку, но это касается вопроса, с которым я сейчас сталкиваюсь ...

У меня есть веб-сервер, работающий на платформе с ограниченными ресурсами (128 КБ флэш-памяти, 48 КБ ОЗУ), поэтому он может обрабатывать только одно соединение за раз. Дальнейшие соединения не обрабатываются, пока текущее соединение не будет закрыто. Кроме того, он не вызывает Connection: close для определенных URL-адресов из-за требования низкой задержки. Как правило, с устройством одновременно разговаривает только одна вещь.

Соединения AJAX следуют тем правилам, которые браузер устанавливает для других соединений. В моем случае я тестирую веб-страницу, которая использует AJAX для чтения одного из разрешенных для поддержания активности URL-адресов один раз в секунду, а браузер не закрывает соединение в течение нескольких секунд после Окно закрыто. В результате другие клиенты ждут бесконечно.

Так что не предполагайте, что XHR-соединения закрыты после завершения. Они могут не быть; Firefox 21 точно не закрывает их.

Моя текущая проблема заключается в том, что я хочу, чтобы мои AJAX-запросы закрывали сокет по завершении, и я использую хук предварительной обработки .ajaxSend() jQuery для установки заголовка Connection: close. Кажется, что AJAX работает, но когда другой клиент пытается подключиться, он получает «сброс подключения по пиру», поэтому мне интересно, не обнаружит ли Firefox заголовок «Connection: close» в запросе XHR и сохраняет его конец открытого сокета (до истечения примерно трех секунд) даже после того, как сервер закрыл свою сторону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...