ПредишенСледващото

Два различни вида кеширане в компонентите

Повечето от стандартни компоненти, използвани едновременно Битрикс кеширане $ arResult масив и HTML-код. Въпреки това, когато пишете свои собствени компоненти не винаги е удобно, често се случва, че в модела е необходимо за извършване на част от кода на всеки удар, така че по-добре да кешират само данните в $ arResult. Следните 2 примерите, цитирани кеширане (за component.php) - кеширане на HTML-код и без. Имайте предвид, във втория вариант, връзката модел е направен след блока кеш, и заема мястото $ това-> EndResultCache ().

$ ArResult кеширане и шаблон на HTML код:


Кеширане само $ arResult:


Добавяне на данни към кеша на шаблон за използване в component_epilog.php

Component_epilog.php - файл, който се провежда след изхода на шаблона, не кешира, т.е. той работи без значение, беше показан новосъздадената HTML-кода на шаблона или на изхода от кеша. Съответно, ние можем да използваме този файл за извършване на някои действия на всеки хит, въпреки, например, за да се покаже на HTML кода споменато на страницата, като се използва за забавяне функции. Въпреки това, на разположение в component_epilog.php данни, обикновено е много ограничени в компонентите, които използват HTML-кеширане. В този пример, аз ще ви покаже как да разширим списъка с данни, така че ние, въведете следния код във файла result_modifier.php на Comp в шаблона (например, с помощта на ключови «точки" в масива $ arResult, съдържащ компонент "Битрикс: news.list" Основната масив данни):


Писане на $ arResult родител композитен компонент от шаблон

Понякога шаблонни файлове композитен компонент (които нямат своя кеш) е удобно да има някои данни от тях се използват в конвенционалните (nekomleksnyh) компоненти. Пример: След свързване на компонент catalog.section.list ни в съответствие със структурата на HTML-код, предоставен от кодера, се изисква за достъп до някои области в секцията шаблон е интегриран компонент. За да се избегнат допълнителни заявки към базата данни и свързаната с кеширане предстоящо или свържете отново catalog.section.list компонент, направете следното:

Добави към компонент кеш всички необходими данни, например, използват result_modifier.php файл за добавяне масив от $ arResult # 91; "РАЗДЕЛ" # 93;

В component_epilog.php файл получи обекта на компонента родител, ако той е на разположение, и да я използват за записване на стойността на имотите arResult

Свързани статии

Подкрепете проекта - споделете линка, благодаря!