
Спасибо всем участникам вебинара!

Пришло 220 человек, некоторые активничали и задавали вопросы, не на все я сразу смог ответить

Мы рассмотрели технологии, не правильное использование которых приводило к типовым ошибкам. Часто не выполняются такие требования:
- При кастомизации компонентов, новый функционал обязательно должен корректно работать с включённым кешированием.
- Реализованная логика компонента должна работать верно и при кешировании получаемых данных.
- Получаемые динамические данные и выполнение «тяжелой» бизнес-логики – кэшируется.
- В кеш компонента сохраняются значения только тех переменных, которые будут использоваться далее в некешируемой части компонента.
Надеюсь вебинар поможет разобраться в сути работы отложенных функций и кеширования в компонентах. Вы сможете еще эффективнее реализовывать ваши проекты и конечно успешно сдать экзамен.
[spoiler]
Вопросы которые я зафиксировал на вебинаре чтобы ответить позже
Про новое ядро
Кеширование в компонентах работает одинаково, будь это реализация через component.php или class.php. Там показать нового нечего.
Отложенный функции, на D7 реализован класс Asset, сегодня он умеет добавить строку, css или js в секцию head, все остальное, свойства страниц - пока "по старинке" только.
Тегировнный кеш в компонентах
Мы его не рассматривали (не планировал). Есть урок, где мы кажется хорошо раскрыли тему
Напиши в комментариях, что еще хотелось бы знать, что осталось не ясным по это теме?
Схема работы компонента
После вебинара я немного допилил схему, которую использовал для пояснения схемы работы компонента и кеширования в нем.
Пишите в комментариях, может что стоит в ней улучшить?


up, схема версия 3, пос ле обсуждений
предыдущая версия
- $arResult(**) – в кеше сохраняется не весь arResult, а только те данные, которые используется в некешируемой части! Иначе растет файл кеша и нагрузка от его парсинга. В component_epilog.php будет доступен именно этот arResult, а не «полный», как в template.php
- result_modifier.php – нужен чтобы дополнить arResult типового компонента нужными вам данными для использования в шаблоне. В template.php поступит дополненный массив $arResult(*)
- result_modifier.php и template.php – не исполняются когда хит попадает в кеш, сразу берется итоговый HTML, а значит нет смысла вызывать в них отложенные функции, они не исполнятся.
- component_epilog.php – не кешируется, можно расширить логику типового компонента, необходимую на каждом хите, но будет не верно реализовывать в нем ресурсоемкий код, все «тяжелое» должно кешироваться.
- $arResult (**) – если вам нужные данные в component_epilog.php, но их там нет (компонент не кеширует), то их можно добавить в кеш из result_modifier.php
Запись вебинара
Презентация,
Примеры которые показывал,
Материалы так же размещены в |
Фото:
Ээ, что еще вы хотите разжевать, чего нет в вебинаре?
Документация небольшая, а затыки встречаются часто (даже иногда внутри компании отлавливаем ситуации, когда кто-то недоперенес агенты на крон, или перенес, но некорректно)