Я считаю, что фактическая проблема с параллельным выполнением, наблюдаемая MGM, была упущена
потому что он выполнил регистрацию времени как часть "успеха" функции.
Он взял общие объяснения об асине. характер запросов в качестве ответа, однако,
здесь есть проблема.
Посмотрите на фрагмент ниже:
$(function() {
$(".dd").each(function() {
var obj = $(this);
$.get("test.txt", function(data) {
obj.html(data);
});
});
});
Он загружает файл (асинхронно, как я ожидал) и отображает его (конечно же, синхронно).
Однако код выполняется по-разному во время загрузки первой страницы и при обновлении страницы.
Я отслеживаю запросы к серверу, используя Firebug Net Panel в Firefox 4.0 на Windows.
На первой странице загрузки (или при обновлении с помощью Ctrl-F5) я вижу на панели «Сеть»
что несколько запросов к «test.txt» запускаются одновременно, и активность сети в основном перекрывается.
Эта часть работает, как и ожидалось. Результат может быть обработан в браузере один за другим,
но запросы к серверу выполняются параллельно.
(изображение: начальная загрузка)
(http://i.stack.imgur.com/nSFld.gif)
Это совершенно другая история, когда пользователь нажимает клавишу F5, чтобы обновить страницу. Внезапно параллелизм исчез.
И одна и та же веб-страница загружает «test.txt» один за другим.
(изображение: последующее обновление)
(http://i.stack.imgur.com/7cYfM.gif)
Становится еще яснее, если я заменю отображение данных (obj.html (data);) простым предупреждением: alert (data);
При начальной загрузке страницы я получаю несколько предупреждений одновременно на экране.
Последующие обновления (F5) наглядно демонстрируют, что пока одно предупреждающее сообщение отображается на экране, другое
загрузка произведена (я могу удалить файл, чтобы увидеть, что «$ .get» не работает).
Так что на самом деле $ .get не выполняет асинхронный вызов. звонки на сервер.
Есть идеи, почему это происходит?
P.S.
Извините, система не позволяет мне публиковать изображения.