Как работает кеширование сниппетов в MODX?

Приветствую

Расскажите пожалуйста о том, как работает кеширование сниппетов на примере. У меня есть TV поле и есть сниппет, который получает данные из одного поля ресурса (список из 10 строк) и циклом ищет совпадения в файле (1000 строк в файле.txt), все совпадения меняет на данные из строки файла (формирует HTML). В сниппете из обработанных строк формирую HTML и вывожу через echo 'my_data';, а потом вывожу в шаблон:
[[my_snippet]]
Если я не буду пересохранять сниппет, а также русурс из которого берутся значения для обработки сниппетом или глобально очищать кеш, то будет ли сниппет когда-нибудь вновь обработан, возможно, автоматически? Будет ли расходоваться каким-либо образом ресурсы на обработку данных сниппетом или если сохранил ресурс, TV-поле, сниппет и не очищаю кеш, тогда процедура обработки данных сниппетом будет только разовой?

Не понимаю, проясните пожалуйста ситуацию.
weranda
07 февраля 2018, 12:14
modx.pro
1 926
0

Комментарии: 4

Наумов Алексей
07 февраля 2018, 15:58
+1
Откройте /core/cache/elements/ далее внутри ищите файл с кешем своего сниппета (по id) и посмотрите, что внутри файла.

Именно это и будет вызываться при рендере страницы.

В обозначенных вами условиях (Если я не буду пересохранять сниппет, а также русурс из которого берутся значения для обработки сниппетом или глобально очищать кеш) должен срабатывать кеш, да.
    weranda
    07 февраля 2018, 16:20
    0
    Открыл, посмотрел, увидел код сниппета. Неужели каждый раз при открытии страницы будет MODX будет брать поле со списком и перебирать данные из файла и проделывать еще кучу операций? Как-то это, мне кажется, неправильным. Я думал, что будет в кеше сохранен просто готовый результат работы сниппета в HTML, а не повторение операций. Куда уж логичнее сохранить результат из 10 строк, а не перелопачивать 10 строк TV поля помноженных на 1000 вариантов файла. Или же я чего-то не понимаю, или такое кеширование вызывает подозрение…
      Сергей Шлоков
      07 февраля 2018, 18:05
      +1
      Если сниппет вызыван кэшированным, то результат его работы будет сохранён в кэше страницы. И повторно он вызываться не будет.
        weranda
        07 февраля 2018, 18:13
        0
        Понятно. Спасибо за разъяснения.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4