Что такое поддержка композита битрикс
Перейти к содержимому

Что такое поддержка композита битрикс

  • автор:

Композитный сайт на 1С-Битрикс

Композитный сайт не затрагивает другие технологии Bitrix Framework (Отложенные функции, кеширование компонентов и другие). Они работают совершенно отдельно друг от друга и не мешают друг другу. Композитное кеширование происходит после выполнения страницы, когда все эти технологии уже отработали.

Быстрая выдача страницы в свою очередь влияет на SEO и на удержание пользователя на сайте. Последнее уже влияет на конверсию в интернет магазине.

Внимание! До версии 16.0.14 требовалось чтобы сайт имел активную лицензию для работы технологии. С указанной версии это требование снято.

Примечание: Старые версии Internet Explorer имеют ограничения на количество элементов и . В определенных ситуациях часть CSS для этих браузеров выводится в inline-виде. Также существует вероятность отдать страницу из кеша, в которой не будет работать часть CSS-правил. Поэтому композитный режим для IE6-9 отключён.

Важно понимать что ориентироваться в увеличении скорости работы сайта на основе инструмента Скорость сайта не следует, так как технология Композитный сайт ускоряет только один из множества параметров, замеряемых этим инструментом: время ответа от сервера.

Скорость сайта — комплексный показатель комфортности работы с сайтом для посетителей. Инструмент учитывает качество разработки сайта, качество хостинга и доступность сайта по сети. Рассчитывается для 1000 последних посетителей сайта. Скорость сайта фактически показывает, как быстро отобразился сайт для большинства из этих 1000 посетителей.

В отличие от большинства сервисов, замеряющих скорость загрузки сайта из внешних точек, скорость загрузки ресурса инструментом Скорость сайта проверяется на хитах реальных пользователей. Так как посетители все время меняются, то и данные меняются вместе с ними.

На Рабочем столе в административной части есть гаджет, показывающий текущую скорость загрузки страниц вашего сайта:

Этапы развития технологии

Версия 14.5 : — Главный модуль 14.5.0
— Добавлена технология композитного сайта.

выход технологии. Адаптация сайта (настройка компонентов, включение логирования) — всё в ручном режиме.

Версия 16.0.14 :- Главный модуль 16.0.14
— Новый режим «Автокомпозит»: все неадаптированные компоненты автоматически
создают динамические области с заглушкой в виде своего содержимого. Перед
включением этого режима необходимо очистить кеш компонентов.
— Настройка «Режим перезаписи кеша»: стандартный режим, стандартный режим
с задержкой перезаписи и режим без фонового ajax-запроса.
— Настройка «Голосование шаблона компонента по умолчанию» позволяет указать,
как голосуют все неадаптированные шаблоны проекта. Данный параметр можно
переопределить в настройках конкретного компонента.
— Новый алгоритм обновления динамических областей. Если контент заглушки
не изменился при фоновом ajax-запросе, данные динамической области не приходят
и не обновляются.
— Новый алгоритм разметки динамических областей. Вместо div-контейнера, создается
пара невидимых тегов, не влияющих на верстку страницы.
— Протокол HTTPS поддерживается по умолчанию.
— Добавлена настройка отключения кнопки «Быстро с 1С-Битрикс».
— Срок действия лицензии теперь не влияет на работу композитного сайта.
— Настройка «Параметры URL, при которых не будет работать композитный режим».
— Оптимизирован механизм создания кеша для highload-проектов.
— Новая настройка «Игнорировать следующие параметры URL» позволяет не учитывать
определенные параметры в адресе страницы (например, utm_source, fb_action_ids и др.)
— HTML-кеширование заменено технологией «Композитный сайт». Для редакции «Первый сайт»
необходимо очистить кеш компонентов.

Автоматизация настройки сайта под технологию. Поддержка HTTPS. Дебаг и логирование по прежнему в ручном режиме.

Версия 17.1 :- Главный модуль 17.1.0
— Масштабный рефакторинг композита.
— Все классы технологии теперь находятся в пространстве имен \Bitrix\Main\Composite\.
— В административном разделе добавлены новые страницы мониторинга и отладки.
— Логирование всех ошибок, при которых режим кеширования может не сработать.
— Отказ от константы BX_COMPOSITE_DEBUG.
— Визуальное сравнение версий для поиска причин перезаписи кеша.
— Автоматическая очистка старого кеша при достижении файлового лимита (LRU-алгоритм).
Внимание! После установки обновления необходимо очистить композитный кеш.

полная автоматизация. Дальнейшее развитие автоматизации: появление страниц Статистики и Отладки в Административном разделе. Полный рефакторинг технологии на ядро D7.

Версия 18.0.5 — Главный модуль 18.0.5
— Автокомпозит недоступен в коробочном корпортале.

Ограничение для «Битрикс24 в коробке»

Краткий обзор технологии «композитный сайт»

В настоящее время скорость загрузки страниц любого сайта имеет не малое значение, так как далеко не каждый пользователь захочет долго ждать пока сайт загружается. Система управления 1С Битрикс предлагает внедрение технологии, которая позволит ускорить загрузку содержимого вашего сайта. Название данной технологии — композитный сайт. Нужна ли данная технология или нет? Как ее настроить, если все же решение о ее внедрении на ваш сайт имеет место быть? Именно об этом пойдет речь в данной статье.

Нужен ли композитный режим?

Для начала стоит определиться нужен ли вам композитный режим прежде чем его использовать. Чаще всего композитный режим устанавливают только потому, что компании, осуществляющие техническую поддержку, рекомендуют это сделать, аргументируя это тем, что сайт будет грузиться быстрее. Стоит отметить, что за настройку данного режима партнеры компании битрикс получают небольшой бонус в виде баллов. Отчасти это верное утверждение, и цель оправдывает средства, если речь идет о том, чтобы за небольшую плату увеличить скорость загрузки страниц, вместо того, чтобы делать рефакторинг и исправлять ошибки или малопроизводительные участки кода.

В каких случаях, на мой взгляд, данную технологию использовать не стоит?

  1. Если ваш сайт и без того грузится достаточно быстро, или большая часть ваших страниц уже работает в режиме кеширования, то настройка данной технологии неопытным пользователем может только усугубить ситуацию: не в плане скорости отдачи страниц, а в плане появления ошибок на страницах, где может быть использовано большое количество javascript кода со сложной логикой работы.
  2. Если ваша версия битрикса ниже 16.0.14, и ваш сайт не имеет активной лицензии, в таком случае данный режим работать не будет.
  3. Если вы по какой-то причине решили, что ваш сайт должен работать на версиях Internet Explorer 6-9. В данных версиях этого браузера эта технология отключена.

Из чего можно сделать вывод, что если указанные выше условия удовлетворены, и у вас есть специалист, который сможет настроить ваш сайт для работы в композитном режиме или вы сами являетесь таковым, то нет причин, по которым настройку данной технологии осуществлять не стоит. Ниже мы рассмотрим типовой случай настройки данной технологии.

Примечание: В зависимости от сложности сайта, его объема и других показательных величин, настройка данной технологии может потребовать разного количества времени.

Подготовка к работе сайта в композитном режиме, этапы развития композита

Самое первое, что необходимо определить перед началом настройки композитного режима — это версию вашей системы управления 1С Битрикс, так как в зависимости от версии настройка данной технологии может отличаться.

Можно выделить 3 основных этапа развития технологии, в рамках которых, настройка данного режима будет отличаться:

  1. В версии 14.5.0 добавлена технология композитного сайта. Адаптация сайта (настройка компонентов, включение логирования) — всё в ручном режиме.
  2. Версия 16.0.14:
    • новый режим «Автокомпозит»: все неадаптированные компоненты автоматически создают динамические области с заглушкой в виде своего содержимого. Перед включением этого режима необходимо очистить кеш компонентов.
    • настройка «Режим перезаписи кеша»: стандартный режим, стандартный режим с задержкой перезаписи и режим без фонового ajax-запроса.
    • настройка «Голосование шаблона компонента по умолчанию» позволяет указать, как голосуют все неадаптированные шаблоны проекта. Данный параметр можно переопределить в настройках конкретного компонента.
    • новый алгоритм обновления динамических областей. Если контент заглушки не изменился при фоновом ajax-запросе, данные динамической области не приходят и не обновляются.
    • новый алгоритм разметки динамических областей. Вместо div-контейнера, создается пара невидимых тегов, не влияющих на верстку страницы.
    • протокол HTTPS поддерживается по умолчанию.
    • добавлена настройка отключения кнопки «Быстро с 1С-Битрикс».
    • срок действия лицензии теперь не влияет на работу композитного сайта.
    • настройка «Параметры URL, при которых не будет работать композитный режим».
    • оптимизирован механизм создания кеша для highload-проектов.
    • новая настройка «Игнорировать следующие параметры URL» позволяет не учитывать определенные параметры в адресе страницы (например, utm_source, fb_action_ids и др.)
    • HTML-кеширование заменено технологией «Композитный сайт». Для редакции «Первый сайт» необходимо очистить кеш компонентов. Дебаг и логирование по-прежнему в ручном режиме.
  3. Версия 17.1.0
    • все классы технологии теперь находятся в пространстве имен \Bitrix\Main\Composite\.
    • в административном разделе добавлены новые страницы мониторинга и отладки.
    • логирование всех ошибок, при которых режим кеширования может не сработать.
    • отказ от константы BX_COMPOSITE_DEBUG.
    • визуальное сравнение версий для поиска причин перезаписи кеша.

В нашем случае мы будем рассматривать настройку данной технологии в рамках версии 17.1.0 и выше (речь об актуальной версии на момент написания статьи). Поскольку все страницы сайта должны работать в композитном режиме в зависимости от сайта, может понадобиться настраивать каждую страницу отдельно, именно поэтому, далее мы рассмотрим типовой пример настройки компонента.

Приступаем к настройке композитного режима

Первое, что необходимо сделать — это зайти в раздел настройки > настройки продукта > композитный сайт > настройки и во вкладке «АвтоКомпозит» включить данный режим (рис.1).

composite

Рис.1

Затем заходим в раздел настройки > настройки продукта > композитный сайт > отладка, выбираем срок, в течении которого мы будем осуществлять отладку и нажимаем «Включить отладку» (рис.2).

composite-debug

Рис.2

После чего нам потребуется зайти на наш сайт с чистого браузера или в режиме инкогнито и открыть страницу, которую мы собираемся настраивать для работы в композитном режиме. Изначально при первом посещении страницы она записывается в композитный кеш, а уже при повторном заходе на нее отдается из кеша, в результате чего мы можем наблюдать в нижней части страницы кнопку «Быстро с 1С Битрикс» (при необходимости данную кнопку можно настроить под дизайн вашего сайта или убрать). Также мы можем установить расширение для браузера Google Chorome, под названием Bitrix Composite Notifier, которое отображается цветным, если страница работает в композитном режиме. Это будет означать, что наша страница работает корректно, но это не гарантия того, что данный режим правильно настроен. Самое простое как раз таки и заключается в том, чтобы данный режим начал работать, а самое сложное выясняется позднее, когда в зависимости от содержимого в режиме отладки, мы можем наблюдать, что на странице происходит перезапись кеша. Это означает, что на нашей странице есть динамическое содержимое, которое может изменяться. К такому содержимому, например, можно отнести корзину интернет магазина (имеется в виду малая корзина в шапке сайта, как правило, а не страница корзины), так как в зависимости от действий пользователя вашего магазина содержимое корзины будет меняться. Поэтому, как раз таки корзину и стоит поместить в динамическую область.

Примечание: стоит отметить, что некоторые страницы не следует настраивать для работы в композитном режиме. Например: страница корзины или страница результатов поиска, поскольку из статического содержимого на данных страницах может быть только шапка и футер сайта, а все остальное — это динамический контент.

Поскольку мы осуществляем настройку АвтоКомпозита, в данном случае, все неадаптированные компоненты по умолчанию голосуют «за композитный режим» и создают динамические области с заглушкой в виде своего содержимого, из-за чего как раз таки и может происходить перезапись кеша.

Как поместить содержимое в динамическую область?

Для этого, в шаблоне компонента необходимо указать следующую конструкцию:

createFrame("sale-basket-basket-line-container", false)->begin(); //Здесь содержится динамический контент $frame->beginStub(); //Здесь указывается заглушка $frame->end(); ?>

Первым параметром в методе createFrame указывается контейнер, который будет использован в оформлении вывода данных. А заглушка — это содержимое, которое пользователь может увидеть до того, как будет загружен динамический контент.

А если в начале компонента разместить конструкцию $this->createFrame() ->begin(‘Загрузка’); и нигде ее не закрыть, то реально это будет означать, что компонент динамичный.

Если необходимо, чтобы какие-либо страницы не работали в композитном режиме, это может понадобиться по разным причинам, например, на странице много javascript кода и в режиме композита что-то может работать не правильно, то достаточно у любого компонента на странице указать следующую конструкцию:

setFrameMode(false); ?>

Это будет означать, что компонент голосует «против» и в таком случае, вся страница не сможет работать в данном режиме.

Выводы

Нужна вам или нет данная технология решать только вам. Со своей стороны могу лишь сказать, что хуже от настройки данной технологии точно не будет, а польза может быть ощутимой, при условии, что ее настройка осуществлена правильно. Но, также следует отметить, что когда данная технология включена, и на сайте появляются новые страницы, дополнительно может потребоваться их настройка.

Для более ранних версий Битрикса настройка будет отличаться и указанные в данной статье советы могут не подойти, поэтому, для более детальной информации по данной технологии стоит обратиться к курсу: «Технология композитный сайт», где более подробно описан процесс настройки, поскольку в данной статье описан только краткий обзор данной технологии.

Инструкция по настройке Композита

«Композитный сайт» — это технология, запатентованная компанией 1С Битрикс. Принцип ее работы: выдавать пользователю страницу из быстрого(html) кэша и при загрузке обновлять нужные блоки асинхронными запросами(ajax).

Цель композитного кэширования — ускорение работы сайта. Скорость открытия страниц важна для пользователя и для сканирования веб-ресурса поисковыми роботами яндекса и гугла.

1. Делаем настройки в админке

Включить Композит

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

Включить Композит

Устанавливаем значения полей:
Хранить кеш: можно оставить в файлах

Список доменных имен (каждое в новой строке): укажите свой домен, если настроена многосайтовость, то несколько доменов.

Маска включения: *.php;*.html;*/;* — указываем, что кэшировать будем все url, которые заканчиваются на «.php», «.html» или «/».

Маска исключения: не все страницы нужно композитить, это касается служебных страниц и страниц с ограниченным доступом. Если они попадут в кэш, то будут доступны всем, поэтому указываем страницы-исключения.

Сохранять на диск только страницы без параметров: если кэшировать страницы с параметрами — нужно выделять большый объем памяти под файлы кэша, т.к адресов с get-параметрами может быть много, их генерируют фильтры, сортировка, постраничная навигация и т.д. Если у вас есть несколько свободных гигов, можно не ставить галочку.

Дисковая квота (мегабайт): в зависимости от проекта, можно поставить 100 или 100000 мегабайт; для среднего магазина на 3-4 тысячи товаров достаточно 5Гб. Если вы установите меньшую квоту чем требуется, файлы композитного кэша не будут сохраняться после превышения квоты.

2. Включаем логи

Вторым шагом включим константы в /bitrix/php_interface/dbconn.php, они нам потребуются для отладки, в файле log.txt будут сохраняться записи об ошибках и успешном создании композитного кэша страницы.
Для этого переходим: Контент -> Структура сайта -> Файлы и папки -> bitrix -> php_interface .
Находим файл dbconn.php и нажимаем Редактировать как PHP
Далее устанавливаем в конце файла эти две сточки:

define( "BX_COMPOSITE_DEBUG", true ); define( "LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt" );

3. Настройка компонентов

Теперь самое интересное. Компоненты сайта будем делить на статические и динамические.
Статические — которые выдают одинаковый код для любого пользователя. Например, это может быть меню каталога (bitrix:menu), список разделов(catalog.section.list), список новостей(news.list), детальная страница новости(news.detail) и т.д

Для таких компонентов, в шаблонах, после объявления пролога включаем композит:

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true);

В метод setFrameMode можно передать true или false, соответственно включить и отключить композит.

Динамические компоненты нужно обновлять для каждого пользователя. К таким компонентам относятся малая корзина(bitrix:sale.basket.basket.line) или форма авторизации(bitrix:system.auth.form). Если, к примеру, мы не обновим блок корзины, то он выдаст нам информацию из кэша. А зачем пользователю чужая корзина? Для шаблонов динамических компонентов код выглядит так:

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true); $this->createFrame()->begin('');

Теперь, если мы хотим кэшировать компоненту, но не полностью, а частично, например, хотим обновлять цены в списке элементов (bitrix:catalog.section)

 
$frame = $this->createFrame('price-index', false)->begin() echo $arFields[PRICES][BASE][PRINT_VALUE_VAT]; $frame->beginStub() echo 'руб.'; $frame->end()

, тогда при загрузке сайта пользователь увидит
, а после обновления асинхронным запросом увидит то, что возвращает

echo $arFields[PRICES][BASE][PRINT_VALUE_VAT];

Если нам нужно закэшировать часть кода вне компоненты, например, в шаблоне сайта, используем такой код:

\Bitrix\Main\Page\Frame::getInstance()->startDynamicWithID("user-block"); if( !$GLOBALS["USER"]->IsAuthorized() )< echo 'Авторизация'; >else< echo 'Мой профиль'; > \Bitrix\Main\Page\Frame::getInstance()->finishDynamicWithID("user-block", "");

В большинстве случаев, для настройки «Композитного сайта» этого достаточно.

Также можно применить:

6. Используем кэш браузера. Подгружает статику с прошлого хита (для малой корзины) $frame=$this->createFrame()->begin(''); $frame->setBrowserStorage(true); 7. Использование анимации для баннера (плавное появление контента) 
$frame = $this->createFrame('top_banner')->begin(''); $frame->setAnimation(true);

Когда вы установите для всех шаблонов компонентов настройки для композита, можно проверить страницу. Для этого откройте ее в браузере под не авторизованным пользователем и посмотрите: в подвале должен появиться баннер «Быстро с 1С Битрикс».
Если такой баннер не появился, то смотрим файл логов, он находится в корне сайта и называется log.txt.
В нем будут указаны компоненты, для которых не настроено композитное кэширование.

Если все-таки у вас возникнут проблемы с настройкой Композитного сайта — обращайтесь, помогу.

Композитный сайт 1C-Битрикс

Композитный сайт является результатом совмещения технологии html-кеширования и ajax-подгрузки информации, произведенного компанией 1С-Битрикс. Включение этой технологии приводит к тому, что сайт становится быстрым и удобным в использовании.

Рассмотрим преимущества технологии:

  • Удобство для пользователей сайта. С композитом сайт будет открываться в десятки и даже сотни раз быстрее, что уменьшит количество отказов.
  • Улучшенное ранжирование в поисковой системе. Композит увеличивает шансы попасть сайту в топ результатов поисковой системы Яндекса и Гугла.
  • Улучшение конверсии. Проще говоря, сайт начинает “летать”, что доставляет удобство перемещения по сайту и увеличивает конверсию.

Технология «Композитный сайт” доступна на любой из имеющихся редакций 1С-Битрикс: Управление сайтом.

Принцип работы композита

В процессе работы технология разделяет страницы на статическую и динамическую составляющую:

  • Статическая часть кешируется на стороне сервера, сохраняется в браузер пользователя и отдается сразу. Такая страница содержит данные, которые видят все посетители сайта – это информационные страницы, страница с товарами, список новостей, категории товаров на главной и т.п.
  • Динамическая часть подгружается в фоновом режиме после загрузки страницы и также кэшируется браузером. Здесь происходит подгрузка таких данных, как информация пользователя, корзина, цены, баннеры и т.п.

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

На следующей картинке показано как при помощи технологии “Композитный сайт” можно ускорить открытие сайта.

Подробно о том, как работает технология «Композитный сайт» написано на официальном сайте Битрикс.

Нужен ли композитный режим?

Композитный сайт будет полезен для сайта любой сложности и направленности. Если сайт простой и достаточно быстро отдает страницу, то нет необходимости делать его еще быстрее. В другом случае, композитный сайт полезен, особенно, если на сайте имеются тяжелые элементы и изображения.

Как включить композит?

Процедуру включения и проверки работы композита лучше выполнять на отдельном сайте, чтобы не навредить работе пользователей. Включение композита производится на странице: ваш_сайт/bitrix/admin/composite.php.

Существует два режима работы композита. Для включения композита можно воспользоваться режимом Автокомпозита. Этот режим удобен тем, что для включения не нужно вникать в смысл работы технологии, что-то настраивать и привлекать разработчика. Битрикс сам, в автоматическом режиме, решает какие элементы страницы статические, а какие – динамические. Но иногда он ошибается и его нужно проверить.

Для проверки работы композита существует плагин для Google Chrome Bitrix Composite Notifier. С его помощью можно быстро понять работает композит или нет. Если композитный кэш работает на странице, то значок плагина загорится зеленым цветом.

Второй способ проверки – через отладочную панель браузера «Network» с фильтром по «Doc» (как на скриншоте ниже).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *