Еще немного о кешировании в MODX Revolution
Мы уже разговаривали о кешировании и парсинге здесь и здесь. И вот еще небольшая порция информации для размышления. Что мы имеем? Небольшой сайт-визитку с каталогом. На главную выводится помимо парочки менюшек еще и главный источник проблем в области производительности — галерея товаров с использованием пакета Gallery. В принципе у нас главная не меняется, потому у нас стоит задача максимально закешировать документ, чтобы вообще летало. Посмотрим какой производительности можно добиться, применяя кеширование. Сразу вкратце обрисую схему работы документа: в шаблоне только один исполняющий сниппет, который подгружает PHP-файл и там уже происходит основная работа. То есть по идее, если мы сделаем этот сниппет кешируемый, у нас должно получиться максимальное кеширование. Посмотрим. Вариант 1. Документ не кушируемый вообще. Генерация страницы 760-900 мсек. Вариант 2. Документ кешируемый, сниппет не кешируемый. Генерация 630-700 мсек. Вариант 3. Сниппет полностью кешируемый. Генерация 217-275 мсек. Итак, у нас полное кеширование корневого сниппета. А генерация 200+ мсек. В чем проблема? Проблема в том, что внутри этого сниппета могут встречаться другие некешируемые элементы. Но даже если эти элементы кешируемые, в кеше документа все равно не будет сплошного HTML-кода, а будет массив кешируемых элементов с их значениями, и все равно при каждой загрузке страницы MODX-парсер будет пробегаться по этим элементам и заменять их на их значения. Вот часть кеша этой страницы: '[[$webim.output]]' => '
onclick="if(navigator.userAgent.toLowerCase().indexOf('opera') != -1 &&
window.event.preventDefault) window.event.preventDefault();this.newWindow =
window.open('/webim/client.php?locale=ru&url='+escape(document.location.href)+
'&referrer='+escape(document.referrer), 'webim',
'toolbar=0,scrollbars=0,location=0,status=1,menubar=0,width=640,height=480,resizable
=1');this.newWindow.focus();this.newWindow.opener=window;return false;">