Что означает «ожидание» для запроса в Chrome Developer Window? - PullRequest
95 голосов
/ 07 апреля 2011

Что означает " Ожидание " в столбце состояния на вкладке " Сеть " окна Google Chrome Developer?

Это происходит, когда мой скрипт страницы выдает запрос GET, ответ которого содержит заголовки содержимого для загрузки файла CSV:

Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv

Это прекрасно работает в FF и IE7, загружая CSV-файл, как и ожидалось, и открывая средство выбора файлов, чтобы сохранить файл, но Chrome ничего не делает. Я подтвердил, что сервер отвечает на запрос, поэтому кажется, что Chrome не будет обрабатывать ответ.

Любопытно, что все работает должным образом, если я наберу URL-адрес в адресной строке Chromes и нажму.

К вашему сведению: Chrome 10.0.648.204 на Win-XP

Ответы [ 11 ]

59 голосов
/ 22 мая 2013

В моем случае я обнаружил (после долгих усилий), что «ожидающий» статус был вызван расширением AdBlock. Изображение, которое я не смог загрузить, содержало слово «ad» в URL, поэтому AdBlock не давал ему загружаться.

Отключение AdBlock решает эту проблему.

Переименование файла, чтобы оно не содержало в объявлении «ad», также исправляет его и, очевидно, является лучшим решением. Если это не реклама, в этом случае вы должны оставить это так. :)

5 голосов
/ 01 декабря 2013

У меня были некоторые проблемы с отложенным запросом для 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.

5 голосов
/ 22 августа 2012

Я также получаю это при использовании плагина HTTPS везде. Этот плагин имеет список сайтов, которые также имеют https вместо http. Поэтому я предполагаю, что до того, как будет сделан фактический запрос, он уже как-то отменяется.

Так, например, когда я захожу на http://stackexchange.com, в Developer, я сначала вижу запрос со статусом (прекращен). Этот запрос имеет несколько заголовков, но только GET, User-Agent и Accept. Нет ответа.

Затем появляется запрос к https://stackexchange.com с полными заголовками и т. Д.

Поэтому я предполагаю, что он используется для запросов, которые не отправляются.

2 голосов
/ 11 октября 2017

Состояние ожидания сети вовремя означает, что ваш запрос находится в состоянии выполнения.Как только он ответит, время будет обновлено с общим истекшим временем.

На этом рисунке показано, что сетевой вызов находится в состоянии обработки (в ожидании) This picture shows the network call is in processing state(Pending)

На этом снимке показано время, затраченное на обработку сетевым вызовом. This picture shows the time taken in processing by network call

2 голосов
/ 18 февраля 2015

У меня была такая же проблема на OSX Mavericks, оказалось, что антивирус Sophos блокирует определенные запросы, после того как я удалил ее, проблема исчезла.

Если вы считаете, что это может быть вызвано расширением, то один простой способ попробовать и проверить это - открыть chrome с флагом '--disable-extensions, чтобы посмотреть, решит ли это проблему. Если это не помогло, подумайте о том, чтобы посмотреть, не является ли причиной проблемы какое-либо другое приложение, особенно приложения безопасности, которые могут влиять на запросы.

1 голос
/ 07 октября 2015

Та же проблема с 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>

Теперь работает нормально.

1 голос
/ 15 февраля 2012

У меня была похожая проблема с вызовами application / json ajax.В ff / IE они были в порядке.В chrome в окне Developer Network Status всегда был (в ожидании), потому что возвращался другой код состояния.

В моем случае я изменил свой ответ Json, чтобы отправить HttpStatusCode 200, тогда с Chrome все было в порядке, а текст состояния изменился на 200 OK.

Например, с использованием ASP.NET Web Api

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };
0 голосов
/ 22 июня 2015

В моем случае есть обновление для Chrome, которое не загружается до перезагрузки браузера.Приветствия

0 голосов
/ 25 апреля 2015

Для меня исправлением было добавить следующее в начало запрашиваемого php-файла.

header("Cache-Control: no-cache,no-store");
0 голосов
/ 08 декабря 2013

Я столкнулся с этой проблемой, когда отлаживал локальное веб-приложение. Проблема оказалась из-за ограничений AVG Antivirus и Firewall. Мне пришлось разрешить исключение через брандмауэр, чтобы избавиться от статуса «Ожидание».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...