Кеширование в компонентах
Кеширование в компонентах
Два разных вида кеширования в компонентах В большинстве стандартных компонентов битрикс используется одновременно кеширование массива $arResult и html-кода. Однако при написании собственных компонентов это не всегда бывает удобным, часто бывает, что в шаблоне необходимо выполнять какой-то код на каждом хите, поэтому кешировать лучше только данные в $arResult. Ниже я привел 2 примера кеширования (для component.php) - с кешированием html-кода и без. Обратите внимание, во втором варианте подключение шаблона производится после блока кеширования, а его место занимает $this->EndResultCache(). Кеширование $arResult и html-кода шаблона:
Component_epilog.php - это файл, который запускается после вывода шаблона, и не кешируется, т.е. он запускается независимо от того, был показан только что созданный html-код из шаблона или вывод из кеша. Соответственно мы можем использовать этот файл для выполнения каких-то действий на каждом хите, даже, например, выводить html-код выше на странице, используя отложенные функции. Но данные, доступные в component_epilog.php, как правило весьма ограничены в компонентах, использующих html-кеширование. В данном примере я покажу, как расширить перечень этих данных, для этого мы вставим следующий код в файл result_modifier.php в шаблоне компонета (Для примера используется ключ «ITEMS" в массиве $arResult, содержащий в компоненте "bitrix:news.list" основной массив данных):
Ссылки по теме: |