Що означає "очікує" на запит у вікні розробника Chrome?


104

Що означає "В очікуванні " під стовпцем статусу на вкладці " Мережа " у вікні розробника Google Chrome?

Це відбувається, коли мій сценарій сторінки видає 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


У мене схожа проблема з файлами javascript. Бібліотеки jQuery не завантажуються належним чином і спричиняють проблеми.
Джек М.

Не забувайте, що розширення можуть спричинити цю проблему - у мене виникла така проблема з включенням пікселя відстеження сторонніх партнерів, запит назавжди застряг як "очікує на розгляд". Виявилося, я забув вимкнути рекламний блок!
Енді Сміт

13
Зауважте, що на це питання (перше речення) досі не отримано відповіді. Усі відповіді нижче (станом на сьогодні) - це просто "це те, що це спричинило для мене". Повідомлення дуже загальне і може бути викликане великою кількістю питань. Якби я точно знав, якими вони були, я відповів би, але загалом це, мабуть, означає, що комусь чомусь перешкоджає спілкування десь між сторінкою та сервером. Під "сторінкою" я не маю на увазі браузер, розширення браузера можуть спричинити це, як це було зазначено в інших місцях.
AlexMA

1
бачимо це з поточним випуском Google Chrome Canary (v43), але не зі стабільним випуском Chrome (v40) з URL-адресами з cloudfront
Simon_Weaver

Відповіді:


61

У моєму випадку я виявив (після довгого натягування волосся), що стан "очікування" був викликаний розширенням AdBlock. Зображення, яке мені не вдалося завантажити, у URL-адресі було слово "оголошення", тому AdBlock не захищав його.

Вимкнення AdBlock виправляє цю проблему.

Перейменування файлу таким чином, щоб він не містив "оголошення" в URL-адресі, також виправляє його, і, очевидно, краще рішення. Якщо це не реклама, у такому випадку вам слід залишити її так. :)


1
Я бачив те саме в Chrome із встановленим розширенням TamperMonkey.
sstn

1
@Robin Daugherty, розширення adblock знаходиться на стороні сервера або клієнта ?, в стороні клієнта в моєму випадку немає нічого. І очікуваний статус закінчується між 1,8 хв і 2,2 хв ... що може бути не так? погана мережа ?.
Хуан Руїс де Кастілья

1
Це може бути будь-яке інше розширення, яке блокує завантаження файлу. Спробуйте скористатись анонімним вікном, де всі ваші розширення вимкнено. (Деякі розширення можуть бути включені в режимі анонімного перегляду, тому слід перевірити.)
Робін Догерті

Я витягнув волосся, намагаючись зрозуміти, чому моє середовище розвитку (Angular & Visual Studio) було настільки повільним. Відключення uBlock зробило свою справу. ДЯКУЮ!
XVargas

2
Моя трапляється в IE, який не підтримує AdBlocker ...: (Це для мене переривчаста проблема.
Json

5

Я також отримую це під час використання плагіна HTTPS скрізь. Цей плагін містить список сайтів, які також мають https замість http. Тож я припускаю, що до того, як буде зроблений фактичний запит, його вже якось скасовують.

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

Потім є запит на https://stackexchange.com з повними заголовками тощо.

Тому я припускаю, що він використовується для запитів, які не надсилаються.


5

У мене виникли проблеми з очікуванням запиту на 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.


2

У мене була така ж проблема з OSX Mavericks, виявилося, що антивірус Sophos блокує певні запити, як тільки я його видалив, проблема вийшла з ладу.

Якщо ви думаєте, що це може бути викликано розширенням, один простий спосіб спробувати це - відкрити хром із '--disable-extensionsпрапором, щоб побачити, чи він усуває проблему. Якщо це не вирішує проблему, розгляньте, чи не за допомогою веб-переглядача з’являється будь-яка інша програма, зокрема програми безпеки, які можуть впливати на запити.


2

Час, що очікує на розгляд мережі, вчасно означає, що ваш запит перебуває в стані роботи. Як тільки він відповість, час буде оновлено загальним минулим часом.

На цьому малюнку видно, що мережевий дзвінок перебуває в стані обробки (очікує) На цьому малюнку видно, що мережевий дзвінок перебуває в стані обробки (очікує)

На цьому малюнку показаний час, який зайнятий обробкою через мережевий дзвінок. На цьому малюнку показаний час, який зайнятий обробкою через мережевий дзвінок


1
Я зараз дивлюся на помилково повідомлені минулі часи. Він насправді залишатиметься в очікуванні протягом 4 секунд, але повідомив би 150 мільйонів. І це приблизно те, як довго сервер обробляє ці запити звітів (150 мс, що є). Це як щось штучно
стримує

1

У мене була аналогічна проблема з дзвінками на додаток / json ajax. У ff / IE вони були добре. У хромі у вікні Мережі розробників Статус був завжди (очікується), оскільки повертався інший код статусу.

У моєму випадку я змінив свою відповідь Json, щоб надіслати HttpStatusCode 200, тоді Chrome став нормальним, а текст статусу змінено на 200 ОК.

Наприклад, використовуючи ASP.NET Web Api

 return new HttpResponseMessage(HttpStatusCode.OK ) {
            Content = request.Content
        };

ви можете навести невеликий приклад того, як і де ви змінюєте HttpStatusCode?
Арас

1

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

Зараз це працює добре.


0

Я натрапив на цю проблему, коли налагоджував місцевий веб-додаток. Проблема виявилася обмеженнями AVG-антивірусу та брандмауера. Я повинен був дозволити виняток через брандмауер, щоб позбутися статусу "очікує".


0

Для мене виправлення полягало в тому, щоб додати наступне у верхній частині файлу php, який запитували.

header("Cache-Control: no-cache,no-store");

0

У моєму випадку є оновлення для Chrome, завдяки якому воно не завантажиться перед перезавантаженням браузера. Ура


-3

З тією ж проблемою я зіткнувся, коли запитую певні зображення зі сторінки. Я використовую JavaScript для встановлення атрибута src об’єкта img, і якщо мережа погана в очікуванні, відображатиметься на мережевій панелі вікна розробника Chrome. Я думаю, це пов’язано з поганою мережею.


4
У мене те саме питання, але зображення завжди з’являються прямо на IE або FF, так що це не мережа. Також він переривчастий. Цікаво, чи є у вас нові уявлення
Lior

Тут же питання. На FF ці зображення добре завантажуються.
svassr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.