В данной статье я не буду описывать всю технологию, ибо документация по ней присутствует, а отмечу только те моменты, с которыми, по моему мнению, могут возникнуть трудности или непонимание на начальном этапе.
[spoiler]
Голосование компонентов
Наверно вы уже видели в шаблонах разных компонентов такую строку:
Так вот, данная функция ничего не включает и не отключает, она только "ГОЛОСУЕТ" за или против использования композитного кеширования на странице, где находится компонент. Это значит, что если в зависимости от настройки композитного режима в админке, а именно опции "Голосование шаблона компонента по умолчанию" (может быть "За" или "Против") и учета голосов всех компонентов на странице, композитный режим кеширования на данной странице будет включен или выключен. При этом, если в админке по умолчанию установлено "Против", то чтобы композитный режим был включен, за него явно должны проголосовать все компоненты.
Динамические области внутри шаблонов компонентов
Динамические области, т.е. те фрагменты html-кода, которые будут подгружены аяксом после загрузки закешированной страницы, выделяются в шаблоне компонента при помощи $this->createFrame()->begin(). При этом, есть несколько вариантов их использования, в зависимости от указания параметров как у createFrame, так и у begin.
В первом параметре createFrame указывается DOM идентификатор контейнера, в который будет подгружена динамическая область область после загрузки закешированной странице. При этом во втором параметре следует указать false.
При этом после $frame->beginStub() указывается html-код "заглушки", т.е. тот html, который будет показан до того, как будет подгружена динамическая область. $frame->beginStub() указывать необязательно, можно указать html код заглушки в первом параметре функции begin (а если заглушка не нужна, то в этом параметре при отсутствии $frame->beginStub() следует указывать пустую строку):
Отмена композитного кеширования
Отменить композитное кеширование в любом месте страницы можно с помощью следующей инструкции:
Тестирование
О том что композитный кеш на странице работает (точнее, что страница загружена из композитного кеша) можно судить одним из двух способов:
Для отладки можно включить лог композитного кеша. Если, например, какой-то компонент голосует против композитного кеша, записи в логе помогут определить какой и т.д. Включить лог можно так:
Сброс кеша при помощи api
Сброс композитного кеша вручную производится на той же странице админки "Настройки кеширования", на которой производится сброс орбычного (не коспозитного кеша). А вот у удалениея кеша при помощи api существуют некоторые особенности.
Если необходимо удалять кеш по расписанию, то не рекомендуется просто удалять содержимое папки "/bitrix/html_pages/домен/". Хотя можно поступить и так, удалив при этом также содержимое файла "/bitrix/html_pages/.enabled", но в этом нет необходимости, т.к. в системе уже существует специально созданный файл "/bitrix/modules/main/tools/cron_html_pages.php", запуск которого можно осуществлять из под крона. Например, следующая команда запустит удаление файлов композитного кеша, которые были созданы ранее чем 10 часов назад:
Также можно удалить композитный кеш при помощи api:
[spoiler]
Голосование компонентов
Наверно вы уже видели в шаблонах разных компонентов такую строку:
|
Динамические области внутри шаблонов компонентов
Динамические области, т.е. те фрагменты html-кода, которые будут подгружены аяксом после загрузки закешированной страницы, выделяются в шаблоне компонента при помощи $this->createFrame()->begin(). При этом, есть несколько вариантов их использования, в зависимости от указания параметров как у createFrame, так и у begin.
В первом параметре createFrame указывается DOM идентификатор контейнера, в который будет подгружена динамическая область область после загрузки закешированной странице. При этом во втором параметре следует указать false.
|
|
Отмена композитного кеширования
Отменить композитное кеширование в любом месте страницы можно с помощью следующей инструкции:
|
Тестирование
О том что композитный кеш на странице работает (точнее, что страница загружена из композитного кеша) можно судить одним из двух способов:
- По наличию ссылки "Быстро с 1С-Битрикс", которая появится внизу страницы, если соответствующая ссылка разрешена в настройках композитного кеша (позицией данной кнопки на странице также можно управлять с помощью специального div-контейнера).
- С помощью расширения "Bitrix Composite Notifier" для браузера "Google Chrome". Если страница идет из композитного кеша, иконка расширения становится цветной вместо серой, и при нажатии на иконку будет отображаться дополнительная информация.
Для отладки можно включить лог композитного кеша. Если, например, какой-то компонент голосует против композитного кеша, записи в логе помогут определить какой и т.д. Включить лог можно так:
|
Сброс кеша при помощи api
Сброс композитного кеша вручную производится на той же странице админки "Настройки кеширования", на которой производится сброс орбычного (не коспозитного кеша). А вот у удалениея кеша при помощи api существуют некоторые особенности.
Если необходимо удалять кеш по расписанию, то не рекомендуется просто удалять содержимое папки "/bitrix/html_pages/домен/". Хотя можно поступить и так, удалив при этом также содержимое файла "/bitrix/html_pages/.enabled", но в этом нет необходимости, т.к. в системе уже существует специально созданный файл "/bitrix/modules/main/tools/cron_html_pages.php", запуск которого можно осуществлять из под крона. Например, следующая команда запустит удаление файлов композитного кеша, которые были созданы ранее чем 10 часов назад:
|
|
28.09.201600:5328.09.2016 00:53:07