Simindey
3/8/2017 - 6:39 PM

Композитный сайт

Композитный сайт

<?
//http://zhurov.me/blog/bitrix-composite-site.html
//Этим вызовом вы сообщаете, что ваш шаблон является статическим
$this->setFrameMode(true);

//Если шаблон вашего компонента является полностью динамическим
$this->createFrame()->begin();
//или так
$obFrame = $this->createFrame()->begin(‘Загрузка’);
<?$frame->beginStub();?>
	<?if ($arResult['QUANTITY'] > 0):?>
        	всего <?=$arResult['QUANTITY'];?> товара
	<?else:?>
		у Вас нет покупок, начните их делать прямо сейчас
	<?endif;?>
<?$frame->end();?>
/*
Важно понимать, что все, что находится между beginStub и end будет выполнено на каждом хите, но в кеш в этом месте запишется то, что вы передали в качестве параметра методу begin().
Т.е. в кеш запишется дефолтный текст, а после отдачи страницы из кеша будет запрошен актуальный контент, который практически мгновенно будет вставлен поверх «заглушки», в качестве которой мы использовали в примере строку «Загрузка».
К слову — вместо заглушки может быть все что угодно, ведь это строка, а значит можно вставить какой-то кусок верстки с гифкой, имитирующей подгрузку блока.
Таких пар beginStub() и end() может быть сколь угодно много в шаблоне компонента, но главное условие при этом — чтобы они не были вложены друг в друга.
*/

//А так можно обернуть отдельные не кешируемые области 
$frame = $this->createFrame()->begin('Загрузка ...');
//какой-то код, который не надо кешировать
$frame->end();