$obs=$modx->getIterator('Object', $c);
$cacheManager=$modx->getCacheManager();
foreach($obs as $ob){
$cacheKey = 'objects_'.$tpl.'_'.$ob->get('id');
$cacheOutput = $cacheManager->get($cacheKey);
print_r($cacheOutput);
if(empty($cacheOutput)){
//код не выполняется, так как все объекты закэшированны
}
$ret .= $cacheOutput;
}
return $ret;Оставил в шаблоне только вызов сниппета. Сниппет берет 20 кусков html-кода из кэша и выводит на экран. Время исполнения сниппета 0.023 сек. Время формирования страницы 4.6 секунды. Если закомментировать сниппет, то страница формируется за 0.38 сек. Внутри сниппета один цикл вида :Это все понятно, но modx сохраняет в кэше чанки и сниппеты в виде [[$chunk_name]] и [[snippet_name]] соответственно, т.е. даже если доставать из кэша закэшированные данные о содержимом страницы, то не будет получен чистый html, а получен html с тегами modx и modx все равно будет эти данные парсить. Вот отсюда и тормоза.$obs=$modx->getIterator('Object', $c); $cacheManager=$modx->getCacheManager(); foreach($obs as $ob){ $cacheKey = 'objects_'.$tpl.'_'.$ob->get('id'); $cacheOutput = $cacheManager->get($cacheKey); print_r($cacheOutput); if(empty($cacheOutput)){ //код не выполняется, так как все объекты закэшированны } $ret .= $cacheOutput; } return $ret;