При первом обращании к материалу или, допустим, к модулю происходит
сохранение выбранных данных в файлах, размещенных в директории /cache.
Механизм генерации имен файлов гарантирует, что они никогда не
пересекутся с существующими, а содержимое этих файлов, помимо
закэшированных данных объекта, содержит еще дополнительную уникальную
информацию о закэшированном объекте.
При последующих обращениях, менеджер кэша Joomla! проверяет,
существует ли в кэше объект с заданными параметрами (в том числе
названием, содержимым, датой создания, модификации т.д.), если нет —
значит материал изменялся или же, просто еще ни разу не кэшировался.
Если для запрашиваемого объекта отсутствуют данные в кэше, то перед
отображением объекта пользователю эти данные будут помещены в кэш. А
если закэшированные данные есть, то вот в этом случае происходит
проверка времени кэширования: если дата и время создания кэша
отличаются от текущего на интервал больший, чем время жизни кэша,
установленное в параметрах конфигурации, то объект будет закэширован
заново.
По умолчанию, время жизни кэша равно 900 секунд или 15 минут. Это
означает, что, даже при отсутствии изменений на сайте, каждые 15 минут
кэш будет пересоздаваться, а значит будут выполняться и лишние запросы
к базе данных. Увеличение времени жизни кэша позволяет менеджеру кэша
дольше использовать закэшированные данные, тем самым еще больше снижая
общее количество запросов к базе данных.
На мой взгляд, оптимальным временем жизни кэша является интервал
обновления сайта: если вы добавляете новости не чаще, чем раз в сутки,
а на добавление новостей, допустим, у вас уходит 1 час, то время жизни
кэша можно смело ставить 82800 секунд (23 часа).
Как известно, с помощью мамботов можно производить манипуляции с
текстом материалов, не внося реальных изменений в текст. Например,
выделять какие-то слова или термины, заменять ссылки или прятать
фрагменты текста. Так вот, если у нас включен кэш, и время жизни
выставлено большое, то установив и опубликовав какой-нибудь новый
мамбот, Вы можете не увидеть изменений, потому что Joomla! будет
по-прежнему отображать данные из кэша.
Так как при любом изменении объекта (материала, модуля и т.д.)
происходит перегенерация кэша этого объекта, то независимо от времени
жизни кэша, измененная статья или модуль будут отображены верно, а вот
различные модули, например выводящие списки новых материалов при
включенном кэшировании могут немного «врать», поскольку кэш модулей
сбрасывается только при измении параметров публикации модуля
или по истечению времени жизни кэша. Поэтому для сайтов использующих
модули, выводящих часто обновляемую информацию (newsflash, displaynews
и т.д.) время жизни кэша лучше устанавливать примерно 80-90% от
среднестатистического времени добавления новостей или же вообще
отключать кэширование в этих модулях.
Итак, кэширование позвляет снизить нагрузку на сервер базы данных и
благоприятно сказывается на скорости загрузки сайта. При выборе времени
жизни кэша основным фактором является периодичность обновления
материалов на сайте. При этом необходимо помнить, что включение
механизма кэширования в глобальных настройках сайта приведет к
кэшированию материалов сайта, а для кэширования модулей сайта
необходимо зайти в редактирование параметров этих модулей и выставить параметру Enable cache значение «Да».
Комментарии
RSS лента комментариев этой записи.