Как интерпретировать серые элементы на панели Firebug Net?

Я пытаюсь отладить некоторое хитрое поведение в своем веб-приложении: похоже, что запрос XHR GET отправляется клиентом, но сервер никогда его не получает. Кроме того, клиент, похоже, получает повторяющиеся данные в невидимом запросе, как и предыдущий запрос XHR, который он отправляет.

Еще больше сбивает с толку то, что Firebug окрашивает второй XHR-запрос в панель «Сеть» в светло-серый цвет (запрос здесь третий снизу, второй «GET-тест»):

введите сюда описание изображения

Я не смог найти никакой документации о том, что означает эта окраска. Думаю, если бы я понял это, это могло бы помочь объяснить такое необычное поведение.

Если у кого-то есть понимание, я был бы признателен, если бы вы могли сообщить мне.


person jbeard4    schedule 23.07.2011    source источник


Ответы (1)


"Firebug окрашивает запросы, которые обслуживаются из кеша, в светло-серый цвет..."

Таким образом, причина, по которой сервер не видит запрос, заключается в том, что клиент никогда его не отправляет, а просто получает ответ из своего кеша. Если вы используете jQuery, есть свойство cache, которое вы можете использовать в ajax(). чтобы предотвратить кэширование запросов AJAX. Если вы не используете jQuery, вы можете добавить фиктивный параметр в конец URL-адреса запроса, который имеет значение текущего времени в миллисекундах (на самом деле, это то, во что я верю jQuery).

url + "?v=" + (new Date()).getMilliseconds()

Это должно гарантировать, что URL-адрес всегда уникален, и запретить браузеру использовать кэширование.

person dbb    schedule 23.07.2011
comment
+1 все равно есть кое-что, чего я до сих пор не понимаю. Когда вы закрываете и снова открываете Firefix на той же странице, которую вы просматривали ранее, Firefox делает все эти серые запросы (согласно вашей ссылке, это запросы к кешу, а не к серверу). Но когда вы переходите по тому же сайту с одной страницы на другую, Firefox даже не делает эти серые запросы. Меня это действительно смущает, если эти файлы всегда кешируются, почему Firefox ведет себя по-другому? См. мой вопрос: stackoverflow.com/questions/10048740 - person Marco Demaio; 13.04.2012
comment
Или вы можете указать ожидаемое время жизни каждого объекта в HTTP-заголовке управления кешем. Или поместите в URL-адрес достаточно информации, чтобы однозначно идентифицировать объект, используя кэширование, если впоследствии будет запрошено то же самое. - person Szocske; 14.01.2013