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
                Для mfilter2 не подойдёт?            
                    
                Думаю подойдет. Если не используются &toPlaceholders или &toSeparatePlaceholders. В getCache только &toPlaceholder обрабатывается. Можно так же как скрипты перехватывать изменения $modx->placeholders, но пока не требовалось.            
                    
                При вызове пишет такую ошибку 
                    getClass requires an element and elementClass property to be set            
                С mFilter2 вот эти параметры должны быть так:
А в текущей версии не будет работать. Могу его доработать под mFilter2, но платно :-). И мне надо будет доступы к сайту с mFilter2, чтоб тестировать как будет работать.
                    &element=`mFilter2` &cacheKey=`mFilter2`В assets/components/msearch2/action.php есть такая строка:$config = @$_SESSION['mSearch2'][$_REQUEST['key']];То есть mFilter2 свой конфиг в сессию пишет. Чтоб getCacheSensitive мог mFilter2 кешировать надо будет в него добавить перехват сессии еще.А в текущей версии не будет работать. Могу его доработать под mFilter2, но платно :-). И мне надо будет доступы к сайту с mFilter2, чтоб тестировать как будет работать.
                Ок, напишите в личку договоримся            
                    Обновил getCacheSensitive
Добавил if(empty($elementClass)) $elementClass = 'modSnippet';
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.