Что означает "ожидающий" для запроса в 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. Я думаю, это из-за плохой сети.