Блог → Обход ограничения на одновременное количество AJAX запросов в Firefox

Пусть у нас имеется следующий скрипт

$(document).ready(function(){
     for(i=1; i<101; i++){$.get('test.php?n='+i)};
});

и файл test.php

<?php sleep(10) ?>

Этот скрипт должен одновременно выполнить сто AJAX запросов. Посмотрим как на самом деле обстоит дело в браузере Firefox.

1

Как мы видим, одновременно выполняются лишь шесть запросов. Остальные дожидаются, когда выполнятся предыдущие.

Наберем в адресной строке браузера about:config, пообещаем быть осторожными, и окажемся на странице настроек. Введем в строке фильтра цифру 6. Среди оставшихся переменных обратим внимание на network.http.max-persistent-connections-per-server. Изменим значение на 50. Запустим скрипт. Получим следующую картину.

2

Теперь, одновременно выполняются 15 запросов (уже лучше). Проделаем те же манипуляции, что и в предыдущем шаге. Найдем настройку network.http.max-connections-per-server. Изменим ее значение на 50. Вновь запустим скрипт.

3

Как видим, теперь одновременно выполняются 25 запросов. Попробуем найти настройку браузера, связанную с этой цифрой, но ничего не найдем. Возможно это связано с веб сервером (я использую apache)? Откроем файл httpd.conf и отыщем строчку ThreadsPerChild 25. Изменим значение на 50. Еще раз запустим скрипт.

4

Видим, что одновременно выполнились 30 запросов. Уже известным нам способом находим настройку Firefox network.http.max-connections и меняем ее значение на 50. Еще раз запускаем скрипт.

5

Итак, мы добились того, что одновременно выполняются 50 запросов, а на выполнение всех ста запросов ушло 20 секунд. Сравните это с тем, что было в начале.

Подведем итог. За одновременное кол-во запросов в браузере Firefox отвечают настройки:

  • network.http.max-persistent-connections-per-server
  • network.http.max-connections-per-server
  • network.http.max-connections

Комментарии (3)

Михаил
Спасибо, очень помогло
Ответить
ччч
как это применять на стороне клиента? чем это помогло михаилу?
Ответить
Сергей
Если это ваш клиент и вы на нём делаете какой нибудь серверный скрипт, к примеру на расширении под FireFox, то это может оказаться очень полезной настройкой. Тем более что расширения FeriFox будут работать на всех платформах.
Ответить


Оставить свой комментарий


Представтесь, пожалуйста *

Ваш комментарий

Число на картинке *

captcha

На хостинг