Главная » Изменения ядра » Изменение системы кеширования

Изменение системы кеширования

В стандартном MODX кеш генерировался только по id документа и для вывода динамических страниц приходилось вызывать некешируемые сниппеты.

Для примера код странички:

[ [Wayfinder? &startId=`0` &level=`2`] ]
[ !Ditto? parents=`2` &tpl=`news-tpl` &display=`10` &paginate=`1`! ]
[ +pages+ ]

То есть, из-за наличия пейджера мы не могли стандатрными средствами закешировать Ditto. В итоге имеем постоянные запросы в базу данных, создавая дополнительную нагрузку на сервер. Скорость отдачи сайта тоже страдала.


В custom MODX изменили логику работы кеша, теперь он генерируется по id с учетом get параметров. То есть теперь вот такой код:

[ [Wayfinder? &startId=`0` &level=`2`] ]
[ [Ditto? &parents=`2` &tpl=`news-tpl` &display=`10` &paginate=`1`] ]
[ +pages+ ]

будет работать без проблем, так как пагинация дитто добавляет GET параметр к URL:  site.com/news?start=10site.com/news?start=20. В таком случае MODx сгенерирует уже не 1 запись кеша, а 2. Данный вариант значительно ускоряет работу сайта с большим количеством новостей и подобных лент. Да и то, что документы падают в кеш полностью, уменьшает нагрузку на сервер.