UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: andrey от 01 Июля 2014, 14:27:51

Название: Кэширование и фильтры каталога
Отправлено: andrey от 01 Июля 2014, 14:27:51
Добрый день,
У меня включено кэширование apc для xslt-шаблонизатора

И как выясняется при нем не работают фильтры каталога. Техподдержка предложила лишь отключить кэш для этих запросов. Ладно отключить кэш для генерации самого фильтра не такая уж проблема, но результаты выборки - это самые тяжелые запросы на сайте и как раз ради них кэш включен.

Кто как выходил из этой ситуации. Пожалуйста, поделитесь опытом
Название: Re:Кэширование и фильтры каталога
Отправлено: admin от 01 Июля 2014, 15:28:51
немного смутила формулировка
Цитировать
У меня включено кэширование apc для xslt-шаблонизатора

И как выясняется при нем не работают фильтры каталога

Либо мне всегда везло, либо не во всех случаях apc ломает фильтр. И кстати, а как именно у вас ломается фильтр при включенном apc?
Название: Re:Кэширование и фильтры каталога
Отправлено: e.ioffe от 01 Июля 2014, 15:46:53
Кто как выходил из этой ситуации. Пожалуйста, поделитесь опытом

За то время, что работаю с UMI, заметил одну очень интересную тенденцию - если сайт на UMI работает долго - значит, что используются неоптимальные шаблоны и макросы. Мое "лекарство" - оптимизация шаблонов (если tpl, то перевести на xslt, если xslt - проверить, насколько они "чистые"), оптимизация кастомов (видел решения, в которых selector запускался внутри цикла на 1000 итераций и программист очень долго уверял меня в том, что так и должно быть) + настройка избирательного кеширования с помощью xsltCache.

Если нужно помочь - пишите в ЛС.
Название: Re:Кэширование и фильтры каталога
Отправлено: andrey от 02 Июля 2014, 18:24:53
Либо мне всегда везло, либо не во всех случаях apc ломает фильтр. И кстати, а как именно у вас ломается фильтр при включенном apc?
Просто всегда состояние "до фильтрации"
Меня тоже это смутило, поэтому я задал вопрос в техподдержку. Вообще у меня используются кастомные функции для генерации фильтров и вывода материала, но на основе родных. Там ничего на этот счет найдено не было. Но стандартные у меня тоже не работают
Если у вас работают, то опять же ахтунг техподдержке. Они ничего дельного сказать не могли - так и должно


За то время, что работаю с UMI, заметил одну очень интересную тенденцию - если сайт на UMI работает долго - значит, что используются неоптимальные шаблоны и макросы. Мое "лекарство" - оптимизация шаблонов (если tpl, то перевести на xslt, если xslt - проверить, насколько они "чистые"), оптимизация кастомов (видел решения, в которых selector запускался внутри цикла на 1000 итераций и программист очень долго уверял меня в том, что так и должно быть) + настройка избирательного кеширования с помощью xsltCache.

Если нужно помочь - пишите в ЛС.
Да, я ощущаю как я нагрешил в некоторых местах) Вызовов в цикле, конечно, нет, но все же) Но это всё из-за заказчика, который меняет свои требования и добавляет новые хотелки плюс моей некой неосведомленности вначале.

Сейчас я бы не отказался от советов как все же начать кэшировать. Может что-то в этом духе? http://wiki.umisoft.ru/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT (http://wiki.umisoft.ru/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT)
Название: Re:Кэширование и фильтры каталога
Отправлено: e.ioffe от 02 Июля 2014, 18:29:15
Да, я ощущаю как я нагрешил в некоторых местах) Вызовов в цикле, конечно, нет, но все же) Но это всё из-за заказчика, который меняет свои требования и добавляет новые хотелки плюс моей некой неосведомленности вначале.

Сейчас я бы не отказался от советов как все же начать кэшировать. Может что-то в этом духе?

Если уже накопился определенный багаж "костылей", лучше сначала провести аудит того, что есть. После удалить то, что не используется и исправить оставшееся. После этого уже подключать кэш. Это если делать по уму.

Если нет, можно просто осторожно закэшировать тяжелые моменты.

Да, для начала статья из wiki подойдет, хотя ее нужно немного доработать с тем, чтобы в макросе обрабатывались $REQUEST параметры