Полный цикл в digital

Настройка технологии композитный сайт

Для удобства, работать будем сразу в двух браузерах. В браузере Firefox будем задавать настройки в панели управления, смотреть список закешированных страниц, запускать отладку. А в браузере Chrome с установленным плагином Bitrix Composite Notifier — проверять работу сайта в композитном режиме, как неавторизованный пользователь.

В панели управления переходим на страницу Настройки -> Настройки продукта -> Композитный сайт -> Настройка, открываем вторую вкладку «Композит», нажимаем кнопку «Включить композит»:

На вкладке «Настройки» устанавливаем:

  1. Голосование шаблона компонента по умолчанию — «против», шаблоны будем настраивать сами
  2. Режим перезаписи кеша — «стандартный»

На вкладке «Группы» можно включить композит для отдельных групп пользователей. Для различения пользователей используются служебные cookie:

  1. _NCC (No Composite Cache) для пользователей, которым страница не должна отображаться в композитном режиме
  2. _CC (Composite Cache) для пользователей, которым страница должна отображаться в композитном режиме

Подготовка компонентов

Тестовый сайт у меня самый простой, все страницы статические, и только одна использует самописный комплексный компонент. Этот компонент умеет показывать раздел инфоблока, отдельный элемент инфоблока и главную страницу (корневые разделы инфоблока + популярные элементы). Мы в настройках композита задали, что шаблон компонента всегда голосует против композита, поэтому для каждого простого компонента, входящего в состав комплексного, надо переопределить это значение по умолчанию. Просто добавить строчку:

$this->setFrameMode(true);
<?
/*
* Файл template.php
*/
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die();
// шаблон компонента голосует за композит — шаблон статичный, и его можно записывать в кеш
$this->setFrameMode(true);
?>
<h1><?= $arResult['NAME']; ?></h1>
<article id="iblock-element">
<? if (!empty($arResult['DETAIL_PICTURE'])): ?>
<img src="<?= $arResult['DETAIL_PICTURE']['SRC']; ?>" alt="<?= $arResult['DETAIL_PICTURE']['ALT']; ?>" title="<?= $arResult['DETAIL_PICTURE']['TITLE']; ?>" />
<? endif; ?>
<p>Количество просмотров: <?= $arResult['SHOW_COUNTER'] ? $arResult['SHOW_COUNTER'] : 0; ?></p>
<? if (!empty($arResult['DETAIL_TEXT'])): ?>
<div>
<?= $arResult['DETAIL_TEXT'] ?>
</div>
<? endif; ?>
<p><a href="<?= $arResult['SECTION']['SECTION_PAGE_URL']; ?>">Назад в раздел</a></p>
</article>

Страница попадает в кеш, если все компоненты, размещенные на странице, проголосовали за композит. В том числе «за» должны проголосовать и компоненты, подключение которых происходит в шаблонах сайта header.php и footer.php, а не только те, которые расположены в рабочей области #WORK_AREA#.

Вроде бы все готово, можно проверять. Заходим на страницу этого самописного комплексного компонента как не авторизованный пользователь, и просматриваем три страницы: главная, раздел инфоблока, элемент инфоблока. После первой загрузки любой из этих страниц иконка плагина Bitrix Composite Notifier черно-белая, а после второй уже цветная — это значит, что композит работает.

Плагин Bitrix Composite Notifier довольно глючный. У меня он почти всегда зеленый, даже на страницах yandex.ru и google.com. Так что надо кликнуть по иконке плагина, и если в окошке будет информации по композиту, значит композит работает:

Page
X-Bitrix-Composite: Cache (200)
HTTP Status:        HTTP/1.1 200 OK
Server Response:    9ms
DomContentLoaded:   359ms
Ajax Request
X-Bitrix-Composite: Ajax (stable)

В панели управления, на странице Настройки -> Настройки продукта -> Композитный сайт -> Страницы, можно посмотреть список закешированных страниц:

Эти данные хранятся в таблице базы данных b_composite_page:

ID  CACHE_KEY                                       HOST           URI                    TITLE                       CREATED              CHANGED              LAST_VIEWED          VIEWS  REWRITES  SIZE
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6   /www.host11.ru/test/index@.html                 www.host11.ru  /test/                 Статьи о домашних животных  2018-11-25 09:40:55  2018-11-25 10:35:43  2018-11-25 10:36:31  3      1         18810
7   /www.host11.ru/test/category/id/16/index@.html  www.host11.ru  /test/category/id/16/  Породы кошек                2018-11-25 09:43:20  2018-11-25 10:44:10  2018-11-25 10:44:10  14     2         16572
8   /www.host11.ru/test/item/id/322/index@.html     www.host11.ru  /test/item/id/322/     Абиссинская кошка           2018-11-25 09:44:31  2018-11-25 10:31:04  2018-11-25 10:31:04  2      1         14468

А сами файлы кеша — в директории /bitrix/html_pages/, для каждого домена — отдельная поддиректория типа www.domain.ru.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг