getCacheSensitive обработчик кеша на основе getCache от Jason Coward
На сайте, который мне нужно оптимизировать, используется tagManager 2. Генерация страницы бренда на нем занимает от 3 до 6 секунд. Самый тяжелый элемент это фильтр товаров tmFilters от tagManager. Выполняется 4.5387252 секунды.
Напрашивается его закешировать. Для этого взял сниппет getCache от Jason Coward и его доработал, чтоб он перехватывал и кешировал js, стили, $_GET, $_POST от tmFilters.
Получился сниппет getCacheSensitive
До кеширования 4.5387252 секунды:
Надеюсь getCacheSensitive вам будет полезен :-).
Напрашивается его закешировать. Для этого взял сниппет getCache от Jason Coward и его доработал, чтоб он перехватывал и кешировал js, стили, $_GET, $_POST от tmFilters.
Получился сниппет getCacheSensitive
До кеширования 4.5387252 секунды:
[[!tmFilters? &filterOuterTpl=`public. tm2_filterOuterTpl` &filterTpl=`public. tm2_filterTpl`
&filterNumericOuterTpl=`public. tm2_filterOuterTpl` &filterNumericTpl=`public. tm2_filterNumericTpl`
&jsMap=`1` &jsScript=`1` &toPlaceholder=`filters` &categoryId=`256` &parents=`256`
&tvFilters=`{"product-manufacture":"29000"}` ]]
8 0.001193 4.5387252После кеширования 0.0029261 секунды:[[!getCacheSensitive? &preHooks=`getFilterValueMain` &element=`tmFilters` &cacheKey=`tmFilters` &cacheExpires=`0`
&jsMap=`1` &jsScript=`1` &toPlaceholder=`filters` &categoryId=`256` &parents=`256`
&tvFilters=`{"product-manufacture":"29000"}` ]]
0 0 0.0029261И страница правильно работает.Надеюсь getCacheSensitive вам будет полезен :-).
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В assets/components/msearch2/action.php есть такая строка:
То есть mFilter2 свой конфиг в сессию пишет. Чтоб getCacheSensitive мог mFilter2 кешировать надо будет в него добавить перехват сессии еще.
А в текущей версии не будет работать. Могу его доработать под mFilter2, но платно :-). И мне надо будет доступы к сайту с mFilter2, чтоб тестировать как будет работать.
А блин еще надо добавить &elementClass=`modSnippet`.Я же сниппет у себя скопировал в MODX и elementClass в параметрах по умолчанию шел.Обновил getCacheSensitive
Добавил if(empty($elementClass)) $elementClass = 'modSnippet';