Как работает кеширование сниппетов в MODX?
Приветствую
Расскажите пожалуйста о том, как работает кеширование сниппетов на примере. У меня есть TV поле и есть сниппет, который получает данные из одного поля ресурса (список из 10 строк) и циклом ищет совпадения в файле (1000 строк в файле.txt), все совпадения меняет на данные из строки файла (формирует HTML). В сниппете из обработанных строк формирую HTML и вывожу через echo 'my_data';, а потом вывожу в шаблон:
Не понимаю, проясните пожалуйста ситуацию.
Расскажите пожалуйста о том, как работает кеширование сниппетов на примере. У меня есть TV поле и есть сниппет, который получает данные из одного поля ресурса (список из 10 строк) и циклом ищет совпадения в файле (1000 строк в файле.txt), все совпадения меняет на данные из строки файла (формирует HTML). В сниппете из обработанных строк формирую HTML и вывожу через echo 'my_data';, а потом вывожу в шаблон:
[[my_snippet]]
Если я не буду пересохранять сниппет, а также русурс из которого берутся значения для обработки сниппетом или глобально очищать кеш, то будет ли сниппет когда-нибудь вновь обработан, возможно, автоматически? Будет ли расходоваться каким-либо образом ресурсы на обработку данных сниппетом или если сохранил ресурс, TV-поле, сниппет и не очищаю кеш, тогда процедура обработки данных сниппетом будет только разовой?Не понимаю, проясните пожалуйста ситуацию.
Комментарии: 4
Откройте /core/cache/elements/ далее внутри ищите файл с кешем своего сниппета (по id) и посмотрите, что внутри файла.
Именно это и будет вызываться при рендере страницы.
В обозначенных вами условиях (Если я не буду пересохранять сниппет, а также русурс из которого берутся значения для обработки сниппетом или глобально очищать кеш) должен срабатывать кеш, да.
Именно это и будет вызываться при рендере страницы.
В обозначенных вами условиях (Если я не буду пересохранять сниппет, а также русурс из которого берутся значения для обработки сниппетом или глобально очищать кеш) должен срабатывать кеш, да.
Открыл, посмотрел, увидел код сниппета. Неужели каждый раз при открытии страницы будет MODX будет брать поле со списком и перебирать данные из файла и проделывать еще кучу операций? Как-то это, мне кажется, неправильным. Я думал, что будет в кеше сохранен просто готовый результат работы сниппета в HTML, а не повторение операций. Куда уж логичнее сохранить результат из 10 строк, а не перелопачивать 10 строк TV поля помноженных на 1000 вариантов файла. Или же я чего-то не понимаю, или такое кеширование вызывает подозрение…
Если сниппет вызыван кэшированным, то результат его работы будет сохранён в кэше страницы. И повторно он вызываться не будет.
Понятно. Спасибо за разъяснения.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.