Как я могу проверить, что javascript и изображения кэшируются? - PullRequest
2 голосов
/ 24 марта 2010

Я хочу убедиться, что файлы изображений, CSS и JavaScript, которые являются частью моей страницы, кэшируются моим браузером. Я использовал Fiddler и Google Page Speed, и неясно, дает ли какой-либо из них мне необходимую информацию. Fiddler показывает ответ HTTP 304 для изображений, css и javascript, который должен указать браузеру использовать кэшированную копию. Google Page Speed ​​показывает ответ 304, но не показывает нулевой размер передачи, вместо этого он показывает полный размер файла ресурса. Заметьте также, что я видел, как Google Page Speed ​​сообщает об ответе 200, но затем поставил слово (кеш) рядом с 200 (так что Статус равен 200 (кеш)), что не имеет большого смысла.

Любые другие предложения относительно того, как я могу проверить, отправляет ли сервер обратно изображения, CSS, Javascript после того, как они были получены и кэшированы предыдущим попаданием страницы?

Ответы [ 4 ]

6 голосов
/ 24 марта 2010

В браузере отладчики HTTP, вероятно, наиболее просты в использовании в вашей ситуации. Попробуйте HTTPFox для Firefox или Opera со встроенной стрекозой. Оба они указывают, когда использовался локальный кеш браузера.

Если вы, похоже, получаете противоречивую информацию, то wireshark / tcpdump покажет вам, загружаются объекты или нет, поскольку он отслеживает фактические сетевые пакеты, которые передаются и принимаются. Если вы раньше не рассматривали сетевые трассировки, это может сначала немного запутать.

2 голосов
/ 24 марта 2010

В fiddler убедитесь, что тело ответа (для изображений, css) пусто. Также убедитесь, что ваш максимальный возраст достаточно длинный в заголовке Cache-Control. Большинство браузеров (Safari, Firefox) имеют хорошие инструменты для анализа трафика.

1 голос
/ 27 марта 2010

Журналы доступа ваших серверов могут дать вам много информации о том, насколько эффективна ваша стратегия кэширования.

Допустим, у вас есть html-страница /home.html, которая ссылается на /some.js и /lookandfeel.css. За определенный период времени агрегируйте количество запросов ко всем трем файлам.

Если ваше кэширование эффективно, вы должны увидеть огромное количество запросов на home.html, но очень мало на css или js. Где-то посередине происходит, когда вы видите одинаковое количество запросов для всех 3, но у css и js есть 304. Хуже всего, когда вы видите только 200-е годы.

Очевидно, что вы должны знать ваше приложение, чтобы провести такое исследование. Файлы js и css могут совместно использоваться на нескольких страницах, что может усложнить анализ. Но общая идея остается в силе.

Преимущество такого исследования заключается в том, что вы можете узнать, насколько эффективна ваша стратегия кэширования для ваших пользователей, а не «Работает ли кэширование на моей машине». Однако это не заменит использование http прокси / фиддлера.

0 голосов
/ 25 марта 2010

В HTTP / 304 ответе запрещено иметь тело. Следовательно, полный ответ не отправляется, вместо этого вы просто возвращаете заголовки ответа 304. Но сам обход не является бесплатным, и, следовательно, отправка правильной информации об истечении срока действия является хорошей практикой для повышения производительности, чтобы избежать создания условного запроса, который возвращает 304 в первую очередь.

http://www.fiddler2.com/redir/?id=httpperf объясняет эту тему более подробно.

...