Композит – ваш сайт не тормозит Антон Герасимюк Партнерская конференция 2015

advertisement
Партнерская конференция 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/index@.html
• Ключ к персонализированному кешу
/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
Download