jQuery: Выполнение одновременных запросов ajax, возможно ли это?
Я использую jQuery для одновременного извлечения нескольких fragmentов данных. Основой требования является то, что разные биты данных занимают различные промежутки времени, чтобы стать доступными, поэтому я хочу отображать каждую часть по мере ее возврата.
Проблема в том, что запросы кажутся «очереди»; следующий запрос не возвращается до тех пор, пока предыдущий не вернется. После обширного чтения кажется, что опция «async: false» может быть тем, что мне нужно, но это, похоже, не имеет значения.
Из отладки TCP / IP я вижу, что браузер не инициирует более одного соединения; он использует то же соединение, когда предыдущий запрос вернулся.
- jQuery прокручивает до ID с другой страницы
- Как периодически запускать запрос AJAX?
- Загружать контент с помощью ajax в bootstrap modal
- Вызов функции jQuery после завершения .each ()
- jQuery или CSS-селектор, чтобы выбрать все идентификаторы, начинающиеся с некоторой строки
Я видел много сайтов в свое время, которые загружают данные за ajax одновременно, так что, очевидно, это возможно, но я рву свои волосы, пытаясь заставить это работать.
Вот мой код:
$.ajax({ type: "GET", async: false, url: "foo1.php" }); $.ajax({ type: "GET", async: false, url: "foo2.php" }); $.ajax({ type: "GET", async: false, url: "foo3.php" });
- Можно ли использовать jQuery для получения ширины элемента в процентах или пикселях в зависимости от того, что разработчик указал с помощью CSS?
- текущее время / продолжительность видео html5?
- Проверка на стороне клиента jquery не работает в частичном представлении MVC3
- Функция jquery val () не эквивалентна «$ (this) .value ="?
- Как заполнить выпадающий список json-данными в jquery?
- jQuery stopPropagation bubble down
- parse html string с jquery
- Разбирайте RSS с помощью jQuery
Вы хотите асинхронно (по умолчанию). Браузер ограничивает вас двумя запросами в любой момент времени. Это часть спецификации HTTP. ( Спецификация HTTP 1.1, раздел 8.1.4 )
Ввод запросов в очередь – ваш лучший вариант.
Следует отметить, что это можно переопределить в Firefox и, возможно, в некоторых других браузерах. (но, поскольку он не является стандартным, вам это не поможет)
Браузеры ограничивают вас двумя одновременными запросами. Возможно, вы захотите использовать диспетчер очереди, например: http://www.protofunc.com/scripts/jquery/ajaxManager/