Партнерская конференция 2015 Композит – ваш сайт не тормозит Антон Герасимюк Ведущий разработчик, 1C-Битрикс Технология, на которой можно заработать • Запуск технологии кеширования в апреле 2014 • 2000 сайтов на композите • 6000 потенциальных клиентов #bitrixconf2015 Партнерская конференция 2015 Как работает Партнерская конференция 2015 Партнерская конференция 2015 Зачем Отклик сайта в 100 раз быстрее Лучшее ранжирование сайтов в Яндекс и Google Повышение конверсии интернетмагазина Интеграция сайта в композит Партнерская конференция 2015 • Все шаблоны компонентов по умолчанию голосуют против т.к. важны: • Безопасность пользовательских данных • Эффективность работы композита (без постоянной перезаписи кеша) • Интеграция: • Code Review существующего кода шаблонов и компонентов • Динамические области • Рефакторинг кода, который перезаписывает кеш #bitrixconf2015 Композит на Битрикс24 • Контент страниц зависит от пользователя • Сотни компонентов заточены под многопользовательский режим • Любая страница портала может показать авторизацию • Большая вариативность контента #bitrixconf2015 Партнерская конференция 2015 Но мы справились Партнерская конференция 2015 • Для каждого пользователя создается 2 файла кеша • Рабочая область сайта – динамическая область • Подсветка левого меню на Javascript • При потере авторизации – редирект и сброс кеша Динамическая область #bitrixconf2015 Персонализированный кеш • Ключ к обычному кешу /site.ru/catalog/t-shirts/[email protected] • Ключ к персонализированному кешу /site.ru/catalog/t-shirts/index@/96fd75ec235b1ff09ca23df4c65e1eda.html • Приватный идентификатор сохраняется в Cookie пользователя #bitrixconf2015 Партнерская конференция 2015 Персонализированный кеш • Создаем провайдер кеша Партнерская конференция 2015 • Регистрируем в системе Режим Single Page Application Партнерская конференция 2015 • Обычный режим: один страница – один кеш • SPA режим: много страниц – один кеш • Контент вне динамических областей должен быть везде одинаковым Один файл Веб-акселератор с поддержкой композита Портал на AWS Веб-акселератор Композитный кеш 1 Композитный кеш 2 Партнерская конференция 2015 Пользователь Виртуальная машина 5.1 Партнерская конференция 2015 Новое API для динамических областей Партнерская конференция 2015 • Класс FrameStatic – статическая динамическая область Deprecated • Класс FrameBuffered – буферизированная динамическая область • Удобно создавать заглушки, но не работает с отложенными функциями • По умолчанию используется в шаблонах Заголовки X-Bitrix-Composite Партнерская конференция 2015 • X-Bitrix-Composite: Cache (200) – отдача страницы из композитного кеша • X-Bitrix-Composite: Cache (304) – отдача страницы из композитного кеша (304 ответ) • X-Bitrix-Composite: Ajax – ответ композитного аякса • X-Bitrix-Composite: Ajax (stable) – кеш не изменился • X-Bitrix-Composite: Ajax (changed) – кеш изменился • X-Bitrix-Composite: Ajax (error:not_cacheable) – страница не может быть закеширована • X-Bitrix-Composite: Ajax (error:redirect) – произошел редирект • X-Bitrix-Composite: Ajax (error:not_injected) – композитный js не смог записаться в кеш #bitrixconf2015 Голосование за композит Партнерская конференция 2015 • Новое правило: Если компонент находится в динамической области, он всегда голосует «за» • Игнорирование голосования произвольной области: #bitrixconf2015 Ресурсы динамической области Партнерская конференция 2015 • Проблема: Компонент, находящийся в динамической области, может добавлять в <head> CSS и JS • Решение: метод setAssetMode Поддержка HTTPS Партнерская конференция 2015 Обработка ошибок Партнерская конференция 2015 • Событие onFrameDataRequestFail возникает, когда аякс-запрос завершился неудачей #bitrixconf2015 Что еще • Параметр ncc=1 в URL отменяет композит • Исключающие параметры (~EXCLUDE_PARAMS в .config.php) • Порты 80 и 443 в настройках доменов теперь игнорируются #bitrixconf2015 Партнерская конференция 2015 Планы • Удобный инструмент для отладки • Уход от констант и текстовых логов • Логирование причин, из-за которых не сработал композит • Визуально сравнение версий страниц #bitrixconf2015 Партнерская конференция 2015 Партнерская конференция 2015 Спасибо за внимание Вопросы? #bitrixconf2015