Что означает "ожидающий" для запроса в Chrome Developer Window?
Что означает "Ожидание" в столбце состояния на вкладке "Сеть" в окне Google Chrome Developer?
Это происходит, когда моя страница script выдает запрос GET, ответ которого содержит заголовки содержимого для загрузки CSV файла:
Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv
Это отлично работает в FF и IE7, загружая CSV файл, как и ожидалось, и открывает сборщик файлов, чтобы сохранить файл, но Chrome ничего не делает. Я подтвердил, что сервер отвечает на запрос, поэтому кажется, что Chrome не будет обрабатывать ответ.
Любопытно, что все работает как ожидается, если я наберу URL в адресную строку Chromes и ударяю.
FYI: Chrome 10.0.648.204 на Win-XP
Ответы
Ответ 1
В моем случае я обнаружил (после многократного вытягивания волос), что статус "ожидающий" был вызван расширением AdBlock. Изображение, которое я не мог загрузить, имел в URL-адрес слово "объявление", поэтому AdBlock не загружал его.
Отключение AdBlock устраняет эту проблему.
Переименование файла так, чтобы оно не содержало "объявление" в URL-адресе, также исправляет его и, очевидно, является лучшим решением. Если это не реклама, в таком случае вы должны оставить ее так.:)
Ответ 2
Я также получаю это при использовании плагина HTTPS во всем мире.
В этом плагине есть список сайтов, которые также имеют https вместо http. Поэтому я предполагаю, что до того, как будет сделан фактический запрос, он уже каким-то образом отменяется.
Так, например, когда я перехожу в http://stackexchange.com, в Developer я сначала вижу запрос со статусом (завершен). Этот запрос имеет несколько заголовков, но только GET, User-Agent и Accept. Нет ответа.
Затем появляется запрос https://stackexchange.com с полными заголовками и т.д.
Поэтому я предполагаю, что он используется для запросов, которые не отправляются.
Ответ 3
У меня возникли проблемы с ожидающим запросом mp3 файлов.
У меня был список mp3 файлов и один игрок, чтобы играть в них. Если я взял файл, который уже был загружен, Chrome заблокирует запрос и покажет "ожидающий запрос" на вкладке сети инструментов разработчика.
Все версии Chrome, похоже, будут затронуты.
Вот решение, которое я нашел:
player[0].setAttribute('src','video.webm?dummy=' + Date.now());
Вы просто добавляете фиктивную строку запроса в конец каждого URL-адреса. Это заставляет Chrome загружать файл снова.
Другой пример с проигрывателем попкорна (с использованием jquery):
url = $(this).find('.url_song').attr('url');
pop = Popcorn.smart( "#player_", url + '?i=' + Date.now());
Это работает для меня. Фактически, ресурс не сохраняется в системе кэширования. Это также должно работать так же. CSV файлы.
Ответ 4
У меня была аналогичная проблема с вызовами приложения /json ajax. В ff/IE они были в порядке. В хроме в окне "Сеть разработчиков" Состояние всегда (ожидалось), потому что возвращался другой код состояния.
В моем случае я изменил свой ответ Json, чтобы отправить HttpStatusCode 200, тогда Chrome был в порядке, а текст состояния изменен на 200 OK.
Например, используя ASP.NET Web Api
return new HttpResponseMessage(HttpStatusCode.OK ) {
Content = request.Content
};
Ответ 5
У меня была такая же проблема на OSX Mavericks, оказалось, что антивирус Sophos блокировал определенные запросы, как только я удалил его, проблема исчезла.
Если вы считаете, что это может быть вызвано расширением, простой способ попробовать и проверить это - открыть chrome с флагом '--disable-extensions
, чтобы узнать, исправляет ли он проблему. Если это не исправить, рассмотрите возможность поиска за пределами браузера, чтобы узнать, может ли быть причиной какого-либо другого приложения, особенно приложений безопасности, которые могут повлиять на запросы.
Ответ 6
Такая же проблема с Chrome: у меня на моей html-странице был следующий код:
<body>
...
<script src="http://myserver/lib/load.js"></script>
...
</body>
Но load.js
всегда находился в статусе pending
, когда смотрел в сетевой панели.
Я нашел обходное решение с использованием асинхронной нагрузки load.js
:
<body>
...
<script>
setTimeout(function(){
var head, script;
head = document.getElementsByTagName("head")[0];
script = document.createElement("script");
script.src = "http://myserver/lib/load.js";
head.appendChild(script);
}, 1);
</script>
...
</body>
Теперь он работает отлично.
Ответ 7
Я столкнулся с этой проблемой, когда я отлаживал локальное веб-приложение. Проблема оказалась для AVG Antivirus и Firewall ограничений. Я должен был разрешить исключение через брандмауэр, чтобы избавиться от статуса "Ожидание".
Ответ 8
Исправить, для меня, было добавить следующее в начало файла php, который запрашивался.
header("Cache-Control: no-cache,no-store");
Ответ 9
В моем случае, обновление для Chrome, которое делает его, не будет загружаться до перезапуска браузера. Приветствия
Ответ 10
Ожидающее состояние сети вовремя означает, что ваш запрос находится в состоянии прогресса. Как только он ответит, время будет обновляться с полным прошедшим временем.
На этом рисунке показано, что сетевой вызов находится в состоянии обработки (Pending)
![На этом снимке сетевой вызов находится в состоянии обработки (Pending)]()
На этом рисунке показано время, затраченное на обработку по сетевому вызову.
![На этом рисунке показано время, затраченное на обработку по сетевому вызову]()
Ответ 11
Я столкнулся с той же проблемой, когда я запрашиваю определенные изображения со страницы. Я использую JavaScript для установки атрибута src объекта img, и если сеть плохо работает, она будет отображаться на панели управления окна Chrome. Я думаю, это из-за плохой сети.