Всем нам хорошо известен модуль Block Cache - он позволяет кэшировать друпаловские блоки, предоставляя возможность гибкого управления этим кэшированием: кэш будет обновлен, когда появится новая нода или новый коммент, или новый пользователь или юзер авторизуется/выйдет. Также можно настроить обновление блока через заданный промежуток времени. Однако для моего проекта этой гибкости было недостаточно и пришлось модуль немного расширить. Теперь можно выбирать тип нод, при обновлении которых, кэш блока будет очищен. Поясню на примере.
Допустим, главная страница сайта содержит следующие блоки:
1) последние новости
2) последние блоги
3) последние топики на форуме
4) последние комментарии
5) популярные темы
6) последние изображения
7) блок с нодами афиши х2
последние вакансии/резюме
С одной стороны многовато блоков, но для некоторых сайтов это вполне нормальный набор для главной страницы.
У блоков 1-3 выводятся тизеры с числом комментариев, у блоков 4-6 - набор полей (заголовок, автор, число комментариев, время), у блоков 7-8 - заголовки. Соответственно, часть этих блоков обновляется, когда кто-либо пишет новую ноду, а часть - когда пишут новую ноды или новый комментарий. И здесь возникает проблема: стоит только написать, например, новую вакансию, как тут же обновляются все-все блоки, хотя им обновляться-то как раз и не нужно. В итоге получается куча ненужной работы по обновлению кэша.
Моя модификация добавляет новую опцию на страницу настроек кэшированного блока: можно выбрать типы нод, которые будут вызывать рефреш этого блока. Естественно, эта опция будет работать только если выбрано "refresh when node is updated/posted" и/или "refresh when comment is updated/posted". В итоге, после настройки новых опций, блок "последние новости" будет обновляться только, когда напишут новую новость или прокомментируют новость. Как конечный результат - снижение нагрузки при посещение страниц, на которых много блоков.
Данный мод очень специфичен и не нужен всем подряд. Но я полагаю, найдутся люди, которым он пригодится. Моя версия спокойно ставится как на новый сайт так и на уже установленный blockcache-5.x-1.x-dev от 2008-Jul-18. Также я пофиксил некоторые баги, описанные в issues этого модуля.
Данная модификация существует только под д5, в д6 модуль blockcache встроен в ядро, но принцип его работы изменился, поэтому данный мод туда встроить пока не удалось.
Вложение | Размер |
---|---|
blockcache5x-mod.zip | 12.12 КБ |
Комментарии
Спасибо. Полезно и нужно
Большое спасибо.