Композитный сайт. Как ускорить отдачу сайта в 100 раз.
Валерия Алексеевавеб-программист компании Центр Высоких Технологий
Основная идея
Динамический контент
Cхема работы технологии
Настройка в админке
Хранение кеша•Файлы (папка /bitrix/html_pages/)•Memcached
Отдача кеша•PHP (по умолчанию)•Nginx (требуется дополнительная настройка)
Композитный режим не будет работать если:
• Это POST-запрос• Это HTTPS• Это IE6 - 9 (main 14.5.2)• Запрос начинается с /bitrix• Это ajax-запрос, сделанный с помощью BX.ajax• Есть cookie _NCC• Запрос входит хотя бы в одну маску включения• Пользователь не ходит ни в одну из указанных групп
Отладка
• dbconn.php:define("BX_COMPOSITE_DEBUG", true);define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
• В папке кеша /bitrix/html_pages/<domain>/ файлы перед перезаписью копируются в *.delete.<microtime>
Шаблон компонента голосующего ЗА
Шаблон компонента голосующего ПРОТИВ
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(false);?>
Если компонент на странице голосует против, то в лог фаил пишется:
Выделение динамической области
Свой контейнер и инициализация JS
Создание динамических зон в цикле:
foreach ($arResult["ITEMS"] as $key => $item) { $frame = $this->createFrame()->begin('loading ' . $key); print_r($item); $frame->end();
}
Работа с локальной БД браузера
В закешированной странице нет следующих JS-данных:• BX.message("USER_ID")• BX.message("bitrix_sessid") или BX.bitrix_sessid()• BX.message("SERVER_TIME")• BX.message("SERVER_TZ_OFFSET")• BX.message("USER_TZ_OFFSET")• BX.message(”USER_TZ_AUTO")
Осторожно используем BX.message
Упс! Пересоздан статический фаил
Кнопка “Быстро с 1С-Битрикс”
Что ждать в версии 15.0?
1. Удобный инструмент для отладкиУход от констант и текстовых логовЛогирование причин, из-за которых не сработал композитный режимВизуальное сравнение версий страниц
2. Упрощение настройки nginxАвтоконфигуратор правил на основе настроек в админке
3. Персонализированный кеш
Что почитать?
• Учебный курс: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=39
• Документация на сайте: http://dev.1c-bitrix.ru/user_help/settings/settings/composite.php
• Посты в блоге Антона Герасимюка:http://dev.1c-bitrix.ru/community/blogs/cookbook/composite-website-tips-tricks.phphttp://dev.1c-bitrix.ru/community/blogs/cookbook/composite-news.php