Кэширование чанков, разумно ли?
На просторах интернета наткнулся на статью.
Мне стало интересно мнение опытных программистов, на сколько данный подход способен улучшить скорость загрузки страниц сайта?
Я попробовал, мой код вышел таким:
Сниппет по имени inCache
Пример вызова:
Мне стало интересно мнение опытных программистов, на сколько данный подход способен улучшить скорость загрузки страниц сайта?
Я попробовал, мой код вышел таким:
Сниппет по имени inCache
$cache_key = "chunk_".$input;
$output = $modx->cacheManager->get($cache_key);
if (empty($output)) {
$output = $modx->getChunk($name, $scriptProperties);
$modx->cacheManager->set($cache_key,$output);
}
return $output;
Пример вызова:
[[$header]] → [[inCache? &input=`header`]]
или[[$header:inCache]]
Комментарии: 2
Ну и как скорость загрузки сайта? На том же уровне осталась?
А по теме — что этот костыль делает, могу сказать следующее:
Без него при открытии каждой страницы весь шаблон проходится парсером и, если встречаются сниппеты (например, getResources, Wayfinder и пр.), он их запускает и списки ресурсов генерируются заново. Если же закешировать отдельные блоки (которые на всех страницах всё равно одинаковые), то запуск сниппета внутри такого блока будет произведен лишь один раз. При открытии остальных страниц, этот блок генерироваться заново не будет.
А по теме — что этот костыль делает, могу сказать следующее:
Без него при открытии каждой страницы весь шаблон проходится парсером и, если встречаются сниппеты (например, getResources, Wayfinder и пр.), он их запускает и списки ресурсов генерируются заново. Если же закешировать отдельные блоки (которые на всех страницах всё равно одинаковые), то запуск сниппета внутри такого блока будет произведен лишь один раз. При открытии остальных страниц, этот блок генерироваться заново не будет.
Я не заметил разницы.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.