Данный обзор делался исключительно для презентации на конференции iCamp'2008. Я проанализировал несколько наиболее распространенных в Рунете CMS и привел все информацию по ускорению их загрузки, которую удалось обнаружить.
Демо-версия, практически, никакой информации не дала, поэтому далее информация (цитаты) лично от директора.
В версии 4.0 этой функцией можно управлять из настроек системы. Просто поставить галочку в поле «Использовать GZip-сжатие страниц» и если браузер человека поддерживает такую функцию, то и CMS и страницы сайта будут использовать GZip. Если на одной CMS собрано несколько сайтов, настройка отдельна для каждого сайта.
Не применяется. Только руками верстальщика.
В нашей CMS человек сам вставляет HTML, CSS и JS в том виде, в котором они были сверстаны.
Насколько удалось установить, наиболее корректно отдается Last-Modified
для HTML. Все остальное покрыто мраком.
Нет и не планируется.
Проверялась демо-версия, доступная с официального сайта. Также была попытка установить пакет с сайта. В него не удалось залогиниться.
Оно включается в настройках Модули -> Конфигурация -> Глобальные -> Разрешить браузерам кешировать страницы
. В серверные заголовки при этом добавляется Last-Modified
. Цитата из документации:
Если эта опция включена, то браузер пользователя будет вначале проверять, изменилась ли страница, и если страница не менялась, то загрузит ее из локального кэша. При этом браузеру будет посылаться HTTP-заголовок Last-Modified, который содержит дату последнего изменения страницы. Эта опция поможет значительно снизить нагрузку на трафик и позволит быстрее открывать страницы.
Модули -> Конфигурация -> Домены
, выбираем наш домен и жмем Зеркала
. На открывшейся странице можно добавить еще несколько (2–4) хоста для выдачи статики. Например, у нас был домен
endocardial.demo-pro.umi-cms.ru
мы добавляем еще 4 хоста
i1.endocardial.demo-pro.umi-cms.ru ... i4.endocardial.demo-pro.umi-cms.ru
и теперь все картинки можно отдавать еще и таким образом
http://i1.endocardial.demo-pro.umi-cms.ru/images/cms/thumbs/picture2_50_50.jpg
Выяснить через техническую поддержку, можно ли это как-то автоматически прикрутить к существующим модулям, не удалось. Наверное, никак.
Цитирую службу поддержки:
Возможно реализовать, но это будут уже custom-ные решения для UMI.CMS. Вы можете сделать их самостоятельно или с помощью сторонних разработчиков.
Для тестирования бралась демо-версия с demo.bloggyland.com. Очень много советов по оптимизации приведено на странице wimleers.com/article/improving-drupals-page-loading-performance, где автор разбирает все правила из YSlow применительно к Drupal. Я лишь попытаюсь дополнить своими собственными.
Еще во время своего первого знакомства с Drupal порадовался наличию возможности объединять десятки CSS-файлов для различных модулей (и затем кешировать результат). Включается это через Administer -> Site Configuration -> Performance
. Эта настройка также автоматически минимизирует файл (регулярными выражениями).
Не Доступна в базовой поставке (Drupal 6, спасибо за комментарий adek), и нам поможет модуль Javascript Aggregator. Делает, в принципе, то же самое, что и предыдущий вариант, но уже для JavaScript-файлов. К тому же есть настройка для минимизации их размера (на основе обычных регулярных выражений, это дает от 80% возможного прироста производительности).
Включается автоматически (не нашел, где включается в настройках, но все Drupal-сайты уже отдавали HTML в сжатом виде). Для CSS/JS-файлов добавляется (по всей видимости) двумя вышеупомянутыми решениями. Навскидку никаких проблем замечено не было.
Для статики и HTML-файлов настраивается в Administer -> Settings -> Cache Settings
.
К сожалению, все остальные плюшки уже приходится создавать вручную (либо соответствующие модули находятся в стадии разработки). Однако, уже вышеперечисленного списка вполне хватит для создания производительного сайта на Drupal.
Некогда весьма популярная CMS сейчас как-то меньше мелькает в обзорах. Однако, сайтов на ней порядочно, и сообщество просто громадно. Настройки проверялись на имеющихся сайтах.
Для HTML-файлов добавляется в Общие настройки -> Сервер -> GZIP-сжатие страниц
. Gzip для CSS/JS не предусмотрен.
В базовой конфигурации нет. Удалось найти следующее расширение (Cache accelerate component), которое дополнительно позволяет дополнительно кешировать (и архивировать) CSS/JS-файлы. Однако, не все ладно с серверными заголовками. Использовать стоит с осторожностью: возможны проблемы с совместимостью.
Также попутно был обнаружен PHP Speedy plugin для Joomla, который позволяет делать то же самое, но с серверными заголовками у него все в порядке. В общем, рекомендуется к использованию.
К сожалению, информации об остальных оптимизационных плюшках еще меньше. Если у кого-то есть соображения, поделитесь, пожалуйста, в комментариях.
Абсолютно все CMS показали небогатый набор инструментов для клиентской оптимизации. Лучше всего с этим дело обстоит у открытых CMS, которые во многом развиваются за счет комьюнити.
Спасибо за внимание. Буду рад ответить на ваши вопросы.