Вопрос об использовании поддоменов для принудительного кеширования - PullRequest
1 голос
/ 04 февраля 2009

У меня не было огромной возможности исследовать предмет, но я думаю, я просто задам вопрос и посмотрим, сможем ли мы создать базу знаний по этому предмету здесь.

1) Использование поддоменов приведет к принудительному кешированию на стороне клиента. Это по умолчанию или клиент может легко отключить его? Более любопытно, на какой процент пользователей я должен рассчитывать.

2) Что все будет кешироваться? Изображений? Stylesheets? Flash SWFs? Javascripts? Все?

3) Я помню, что читал, что вы должны использовать поддомен или www в вашем URL, чтобы это работало, это правильно? (и значит ли это, что ТАК не допустит?)

Я планирую в конечном итоге интегрировать это на все свои сайты, но сначала я попытаюсь сделать это для сети сайтов флеш-игр, поэтому я думаю, что www.example.com для сайта останется прежним, но вместо используя www.example.com/images, www.example.com/stylesheets, www.example.com/javascript и www.example.com/swfs, я просто создаю субдомены, которые на них указывают (img.example.com, css .example.com, js.example.com и swf.example.com соответственно) - это лучший курс действий?

Ответы [ 2 ]

5 голосов
/ 04 февраля 2009

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

Кэширование этих элементов полностью происходит из заголовков HTTP, поставляемых с этим контентом.

Для статических файлов, таких как CSS, JS и т. Д., Сервер обычно сообщает клиенту, когда файл был изменен, что позволяет браузеру запрашивать у файла « If-Modified-Since » эту временную метку. Особенности того, как улучшить это путем добавления дополнительных заголовков кэширования, будут зависеть от того, какой веб-сервер вы используете. Например, в Apache вы можете использовать модуль mod_expires для установки заголовка Expires или директиву Header для вывода других типов заголовков управления кэшем.

Например, если у вас есть подкаталог с вашими css-файлами и вы хотите, чтобы они кэшировались не менее часа, вы можете поместить .htaccess в этот каталог с таким содержимым

ExpiresActive On
ExpiresDefault "access plus 1 hours"
0 голосов
/ 04 февраля 2009

Ознакомьтесь с документацией YSlow. YSlow - это плагин для Firebug, удивительного плагина для веб-разработки Firefox. Существует много полезной информации о нескольких способах ускорения загрузки страниц, один из которых использует один или несколько поддоменов, чтобы побудить браузер выполнять больше параллельных загрузок объектов.

Одна вещь, которую я сделал на двух сайтах Django, - это использование пользовательского тега шаблона для создания псевдопутей для изображений, CSS и т. Д. Путь содержит время последнего изменения в виде псевдокаталога. Этот компонент пути удаляется с помощью правила Apache .htaccess mod_rewrite. Затем объекту дается 10-летний срок жизни (ExpiresDefault "сейчас плюс 10 лет"), поэтому браузер загрузит его только один раз. Если объект изменяется, изменяется псевдопуть, и браузер извлекает обновленный объект.

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