использовать кеширование в браузере - PullRequest
4 голосов
/ 29 июля 2011

Я хочу использовать кэширование в браузере для увеличения скорости страницы.Похоже, max-age и last-updated - это хороший выбор, но я не знаю, как определить, какие файлы мне следует реализовать для него.В общем, я не совсем понимаю, как на самом деле это сделать и как будет выглядеть код в моем htaccess.Я думаю, что я ищу, чтобы получить более четкую помощь или чтобы показать некоторые примеры.Или, может быть, кто-то может направить меня на урок / учебник по этому вопросу, который может понять такой новичок, как я, и найти который мне не повезло.Буду очень признателен за любую помощь от кого-то, кто знает больше о максимальном возрасте и последних изменениях и может помочь мне сказать, как это сделать.Я действительно потерялся в этом и заплатил бы кому-нибудь, чтобы помочь мне.Спасибо.

1 Ответ

9 голосов
/ 30 июля 2011

Поиск здесь на SO вернул бы некоторую полезную информацию - например, Использование кэширования в браузере - но в любом случае ...

От: http://www.samaxes.com/2011/05/improving-web-performance-with-apache-and-htaccess/

При первом посещении вашей страницы будет несколько HTTP-запросов на загрузку всех файлов ваших сайтов, но, используя заголовки Expires и Cache-Control, вы делаете эти файлы кэшируемыми. Это позволяет избежать ненужных HTTP-запросов при последующих просмотрах страницы.

Apache включает эти заголовки благодаря mod_expires и mod_headers модулям.

Модуль mod_expires управляет настройкой заголовка HTTP Expires и директивы max-age заголовка HTTP Cache-Control в ответах сервера.

Чтобы изменить директивы Cache-Control, отличные от max-age, вы можете использовать модуль mod_headers.

Модуль mod_headers предоставляет директивы для управления и изменения заголовков HTTP-запросов и ответов. Заголовки могут быть объединены, заменены или удалены.

Правило для установки Expires заголовков:

# BEGIN Expire headers
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 5 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType text/html "access plus 600 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
# END Expire headers

Правило для установки Cache-Control заголовков:

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
  <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "public"
  </filesMatch>
  <filesMatch "\.(css)$">
    Header set Cache-Control "public"
  </filesMatch>
  <filesMatch "\.(js)$">
    Header set Cache-Control "private"
  </filesMatch>
  <filesMatch "\.(x?html?|php)$">
    Header set Cache-Control "private, must-revalidate"
  </filesMatch>
</ifModule>
# END Cache-Control Headers

Примечание: нет необходимости устанавливать директиву max-age с заголовком Cache-Control, поскольку она уже установлена ​​модулем mod_expires.

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

Подробнее здесь: http://www.mnot.net/cache_docs/
И из Google: http://code.google.com/speed/page-speed/docs/caching.html
И Yahoo: http://developer.yahoo.com/performance/rules.html#expires

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