Блог Горошко Андрея 1C-Битрикс Асинхронные операции и Bitrix\Main\Composite\BufferArea: Тонкая настройка композита

Асинхронные операции и Bitrix\Main\Composite\BufferArea: Тонкая настройка композита

Мы уже касались createFrame, но класс Bitrix\Main\Composite\BufferArea предоставляет больше возможностей для контроля над динамическими зонами.

1. Явное указание контейнера (setContainerId)

По умолчанию Битрикс сам создает div с уникальным ID вокруг динамической зоны.

Но иногда это ломает верстку (например, внутри ul или table). Вы можете указать существующий контейнер.

<div id="my-basket-container" class="header-basket">
    <?
    $frame = $this->createFrame("my-basket-container", false); // false = не создавать обертку
    ?>
        В корзине: <?=$count?>
    <?
    $frame->end();
    ?>
</div>

Теперь Битрикс будет искать div#my-basket-container и обновлять его содержимое, не вставляя лишних тегов.

2. Сложная логика заглушки (beginStub)

Заглушка — это то, что видит пользователь и поисковый робот. Она должна быть максимально похожа на итоговый контент, чтобы не было «прыжков» интерфейса (Layout Shift).

$frame = $this->createFrame()->begin();
    // ДИНАМИКА (видят авторизованные)
    echo "Привет, " . $USER->GetFirstName();
    
$frame->beginStub();
    // ЗАГЛУШКА (видят гости и роботы)
    // Здесь можно вывести "скелетон" загрузки или кнопку входа
    echo '<span class="skeleton-loader"></span>';
    
$frame->end();

3. Отмена композита для зоны (setBrowserStorage)

Если данные слишком приватные или тяжелые, можно отключить их сохранение в локальном хранилище браузера (Local Storage).

$frame = $this->createFrame();
$frame->setBrowserStorage(false); // Всегда запрашивать с сервера

Вывод:
Класс BufferArea (возвращаемый методом createFrame) дает верстальщику и разработчику полный контроль над тем, как сайт ведет себя в композитном режиме.

Используйте setContainerId, чтобы сохранить чистоту верстки, и качественные «стабы» для идеального UX.

BufferArea, композитный сайт, динамический контент, setContainerId, стабовый контент, createFrame, оптимизация битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Добавить комментарий

Related Post

Получить список изображений товара catalog.productImage.listПолучить список изображений товара catalog.productImage.list

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить список изображений товара catalog.productImage.list», проанализируем лучшие практики

Разработка сайта для фитнес-клуба и спортивного комплекса на БитриксРазработка сайта для фитнес-клуба и спортивного комплекса на Битрикс

Создание и развитие эффективного веб-ресурса по направлению «Разработка сайта для фитнес-клуба и спортивного комплекса на Битрикс» позволяет усилить позиции бренда на рынке, автоматизировать взаимодействие с заказчиками и кратно увеличить поток

Проведение независимого аудита безопасности и пентеста сайта на 1С-БитриксПроведение независимого аудита безопасности и пентеста сайта на 1С-Битрикс

Высокая скорость загрузки сайта и безупречная серверная безопасность — обязательные требования для успешного коммерческого проекта на 1С-Битрикс. Услуга «Проведение независимого аудита безопасности и пентеста сайта на 1С-Битрикс» обеспечивает поиск уязвимостей