Вопрос

Помимо очевидной большой нагрузки на сервер, плохо ли одновременно проводить несколько одновременных опросов AJAX?Или есть ли вообще ограничение на то, что может обрабатывать браузер / сервер?

Пример (все опросы AJAX)..

  • Функция A с интервалом в 3 секунды запрашивает новое сообщение для глобальной системы чата (например, Facebook / MySpace).

  • Функция B работает с интервалом в 2 секунды для получения обновлений и того, какие действия показывать пользователю (например, в приложении для онлайн-покера).

  • Функция C находится на 4-секундном интервале, но также запрашивает новое сообщение для отдельной системы обмена сообщениями.

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

Решение

Раньше браузеры имели ограничение в 4 (или, в действительно старых случаях, в 2) одновременных подключения на домен.Большинство современных браузеров увеличили это значение до 6 или 8 (на основе моего собственного тестирования и некоторых вспомогательных материалов).

Таким образом, соединения с длительным опросом могут занять эти ячейки в браузере и потенциально помешать быстрой загрузке других файлов.

В противном случае это может привести к ограничению пропускной способности для людей, пользующихся медленными соединениями (коммутируемый доступ или сотовые сети).

Могут быть и другие недостатки, но это два больших, которые я вижу.

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

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

Если вы запускаете схему опроса, подобную той, которую вы описали выше, с A, B, C, вы можете сделать это с помощью одного потока AJAX, который чередует 3 запроса, но со значением тайм-аута, установленным на следующий интервал запроса.Вы создаете воображаемую временную шкалу, где распределяете свои запросы по A, B и C, используя один-единственный поток AJAX.

Я обнаружил, что некоторые мобильные устройства (напримерiPad) блокирует более одного ожидающего запроса xhr.

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