Внедрение композитной технологии

В процессе доработоки крупного Интернет-магазина мы столкнулись с задачей по ускорению работы и внедрение композита — об этом и будет наша статья. Что же это за зверь такой, композит?

Что называют композитом

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

Любой сайт, разработанный на платформе «1С-Битрикс: Управление сайтом», можно перевести в композитный режим работы. Как указано на официальном сайте Битрикс, главные достоинства технологии таковы:

  • Отклик сайта в 100 раз быстрее;
  • Лучшее ранжирование сайтов в Google и Яндекс;
  • И, как следствие, значительный рост конверсии интернет-магазина.

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

Обычный сайт


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


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

Проблемы подключения

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

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

  • Если на сайте присутствуют кастомизированные компоненты, они будут блокировать композит на страницах, где они используются. Такие компоненты нужно будет дорабатывать, адаптируя под композитный режим.
  • Часть JS-скриптов и вёрстки сайта, сделанных без учета композита, придётся подстраивать под композитный режим, потому что при включении композита меняется логика отработки функции готовности HTML-страницы, на которую обычно подвязано много JS-скриптов.
  • Если в организации структуры URL и навигации присутствуют проблемы или нестандартные для Битрикса решения, может возникнуть проблема переполнения композитного кеша и его неконтролируемого роста, при котором композит становится неэффективным.
  • Если на сайте присутствуют страницы с измененными URL (такие страницы часто возникают при подключении различных SEO-модулей, например, модуль ASEO, либо другие модули, такие как ЧПУ умного фильтра и т.д.), это тоже может вызвать проблемы в работе композита, который при генерации кеша ориентируется на URL страниц.

Заключение

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

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