Как я могу протестировать слом кэша и кэширование?

В PHP я пытаюсь украсть страницу из сборника пьес направляющих (см. 'Используя Метки времени Актива' здесь):

По умолчанию, направляющие добавляет метки времени активов ко всем путям актива. Это позволяет Вам устанавливать дату истечения срока кэша актива далеко в будущее, но все еще мочь немедленно делать недействительным его путем простого обновления файла (и следовательно обновляя метку времени, которая затем обновляет URL, поскольку метка времени является частью этого, которое в свою очередь арестовывает кэш).

Это - ответственность веб-сервера, который Вы используете для установки далеко-будущей даты истечения срока на активах кэша, что необходимо использовать в своих интересах эту функцию. Вот пример для Apache:

  # Asset Expiration
  ExpiresActive On
  
    ExpiresDefault "access plus 1 year"
  

Если Вы посмотрите на источник для страницы Rails, то Вы будете видеть то, что они имеют в виду: путь к таблице стилей мог бы быть "/stylesheets/scaffold.css?1268228124", где числа в конце являются меткой времени, когда файл обновился.

Таким образом, это должно работать как это:

  1. Браузер говорит, 'дают мне эту страницу'
  2. Сервер говорит 'здесь, и между прочим, эта названная таблица стилей scaffold.css?1268228124 может кэшироваться в течение года - это не собирается изменяться.'
  3. На перезагрузках браузер говорит, что 'я не прошу тот файл CSS, потому что моя локальная копия все еще хороша'.
  4. Месяц спустя Вы редактируете и сохранили файл, который изменяет метку времени, что означает, что файл больше не называют scaffold.css?1268228124 потому что числа изменяются.
  5. Когда браузер видит, что, говорит, что 'я никогда не видел тот файл! Дайте мне копию,'. Кэш 'арестован'.

Я думаю, что это является блестящим. Таким образом, я записал функцию, которая выкладывает теги таблицы стилей и JavaScript с метками времени, добавленными к именам файлов, и я настроил Apache с оператором выше.

Теперь: как я говорю, работают ли кэширование и слом кэша?

Я проверяю свои страницы с двумя плагинами для Firebug: Yslow и Google Page Speed. Оба, кажется, говорят, что мои файлы кэшируются: "Добавьте, истекает, заголовки" в Yslow и "браузере рычагов, кэширующемся" в Скорости Страницы, оба проверяются.

Но когда я смотрю на Действие Скорости Страницы, я вижу много запросов и ожидания и никаких 'удачных обращений в кэш'.

Если я изменяю свою таблицу стилей и перезагрузку, я действительно сразу вижу изменение. Но я не знаю, не кэшировался ли поэтому браузер никогда во-первых или потому что кэш арестован.

Как я могу сказать?

Обновление: это работает!

Если кто-либо заинтересовал, я просто записал сообщение в блоге, объяснив детали.

6
задан Nathan Long 20 March 2010 в 17:57
поделиться

1 ответ

В firebug вы увидите 304 Not Modified для кэшированных страниц.

Проверьте, что вы применили эти меры в Apache - я обнаружил, что вам нужна смесь настроек для всех браузеров.

4
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: