
В исходном требовании запрошены включение и отладка композита. Оно не содержит доказанных измерений и не устанавливает готовую причину медленной работы. Здесь рассматривается учебный магазин на 1С-Битрикс. Конкретная версия продукта, состав компонентов и доступные режимы проверяются на выбранной установке; цифры ускорения и результаты клиента не придумываются.
Определить, что страница вправе отдавать всем
Составьте перечень блоков страницы и источников их данных. Название раздела, общая иллюстрация и редакционный текст могут быть одинаковыми для посетителей. Персональная цена, содержимое корзины и выбранный набор отличаются. Не делите страницу только по внешним границам дизайна: внутри одной карточки могут соседствовать общие сведения и данные конкретной сессии.
У каждого изменяемого блока укажите условие различия: авторизация, группа покупателя, валюта, режим налога, выбранный вариант или состояние корзины. Затем определите, как это условие учитывается системой. Иногда нужна динамическая область, иногда отдельный ключ кэша, а некоторые сведения вообще нельзя помещать в общий ответ. Выбор зависит от архитектуры, но список различий должен быть явным.
Учебный пример: два покупателя видят одну модель, но разный согласованный тип цены. Если первый прогрел страницу, второй не должен получить его значение как окончательное. Даже короткое появление чужих персональных данных до обновления требует отдельной оценки. Нейтральная заглушка и сохранённое персональное значение имеют разный риск, хотя оба варианта потом заменяются динамическим ответом.
| Блок | Что может быть общим | Что проверять отдельно |
|---|---|---|
| Описание модели | Текст и фото | Язык и принадлежность сайту |
| Цена | Общая подпись блока | Группа, валюта, налоговый режим |
| Корзина | Внешняя область | Состав и количество текущего посетителя |
| Форма | Разметка | Сессия, сообщения и введённые данные |
Разобраться в слоях кэширования
На сайте могут одновременно работать кэш компонентов, композитная копия страницы, серверный прокси и браузерный кэш ресурсов. Не называйте любое старое значение «композитом». Сначала установите, какой слой отдаёт HTML и какой запрос обновляет изменяемый блок. Иначе очистка одного слоя временно скроет симптом, а причина останется в другом.
Документация 1С-Битрикс описывает композитную выдачу с выделением динамического содержания и дополнительной обработкой. Она также предлагает проверять сохранённые страницы и частоту перезаписи. Эти сведения помогают выстроить диагностику, но не подтверждают, что конкретный нестандартный компонент уже адаптирован. Его шаблон и поведение нужно проверить на реальном сценарии выбранной версии.
Сохраните исходную схему перед изменением: где формируется цена, какие параметры получает компонент и что остаётся в готовом HTML. Для учебного разбора достаточно условных обозначений. Полный дамп персонализированной страницы не следует переносить в общий отчёт: он может содержать данные авторизованного покупателя, служебные параметры и сведения о его корзине.
Проверить холодное и повторное открытие
При первом открытии страница может формироваться обычным путём, а при повторном приходить из сохранённой копии. Поэтому один успешный запрос не показывает весь механизм. Сначала откройте выбранный URL в чистом состоянии, затем повторите переход и сравните HTML, сетевые запросы и значения динамических областей. Зафиксируйте, какой ответ действительно использовал кэш.
Не оценивайте работу только по видимой служебной отметке или значку. Они полезны как сигнал, но приёмка требует фактического поведения. Проверьте наличие страницы в штатном списке кэша и соответствующие диагностические данные, если доступны. Если страница не сохраняется, найдите условие, мешающее сохранению, а не обещайте ускорение по самому факту включённого режима в настройках.
Повторите открытие после нескольких действий: смены цены, добавления товара, входа и выхода. Изменившееся состояние может переводить страницу в другой режим. Пользовательский путь важнее изолированного теста главной. Особое внимание уделите URL с параметрами: правила сохранения и отбора таких страниц зависят от конфигурации, а не от общего названия технологии.
Динамическая область должна обновляться целиком по смыслу
Если цена меняется, вместе с ней должны согласованно меняться валюта, подпись налога, доступность действия и связанные значения. Нельзя обновить только число и оставить старую подпись. Состав динамической области определяют по единому смысловому состоянию. Слишком узкая граница создаёт несогласованные фрагменты, слишком широкая способна свести пользу сохранённой оболочки к минимуму.
Проверьте момент до завершения фонового запроса. Посетитель может нажать кнопку раньше, чем обновилась цена. Определите, какое действие разрешено в этот период и откуда сервер берёт итоговые данные. Клиентское отображение не должно быть единственной проверкой коммерческого условия. Если нужно дождаться обновления, интерфейс должен ясно показывать ожидание и не оставаться заблокированным при отказе.
Повторная инициализация скриптов внутри обновлённого блока должна быть управляемой. Кнопка, которая после каждого обновления получает ещё один обработчик, может отправить несколько запросов. Сверьте число действий после нескольких фоновых замен. Приёмка композита затрагивает жизненный цикл компонента, а не только HTML, который сервер успел сохранить.
Проверить цены в разных посетительских контекстах
Создайте разрешённые учебные состояния: гость, покупатель А и покупатель Б с различающимся правилом цены. Используйте синтетические товары и значения. Откройте страницу каждым, прогрейте кэш и поменяйте порядок. Сверьте конечную цену, исходный HTML, заглушку, подпись и данные действия «в корзину». Такая сверка обнаруживает нежелательное смешивание до окончательного обновления.
Сравните также режим налога и валюту, если сайт их поддерживает. Сохранённая оболочка не должна возвращать значение по умолчанию после фильтрации или фоновой загрузки. Отдельная статья может разбирать саму модель цен; здесь задача состоит в сохранении её правил при кэшировании. Не добавляйте универсальные налоговые ставки и не называйте форматирование расчётом.
Если цена зависит от внешнего сервиса, проверьте отказ и задержку. Динамический ответ может не прийти, а страница уже показана. Нужен согласованный запасной сценарий: сообщить о недоступности, оставить явно обозначенное состояние или ограничить действие. Нельзя молча считать старую заглушку подтверждённой актуальной ценой только потому, что общий HTML загружается быстро.
Корзину проверять отдельно от каталога
Счётчик корзины, сумма и состав принадлежат текущему посетителю. После прогрева страницы другим человеком они не должны наследоваться. В учебном тесте добавьте разные товары в две независимые сессии, затем откройте один и тот же каталог. Сверьте данные до и после фонового обновления и проверьте переход в корзину. Обновлённый счётчик не доказывает правильность состава.
Добавление товара должно давать один результат независимо от числа обновлений динамической области. Проверьте повторное открытие, быстрые нажатия и ошибку запроса. Если интерфейс отключает кнопку на время обновления, он обязан вернуть доступное состояние после явного отказа. Бесконечная загрузка на быстрой сохранённой странице остаётся функциональной ошибкой.
При входе и выходе согласуйте жизненный цикл корзины с правилами проекта. Возможное объединение корзин относится к отдельной бизнес-логике и не возникает автоматически из композита. Проверка должна показать, что выбранное правило сохранилось, а не случайно изменилось из-за нового порядка запросов. Не выдавайте совпадение счётчика за подтверждение всей авторизационной цепочки.
Найти причину постоянной перезаписи
Частая перезапись сохранённой страницы может указывать на нестабильное содержимое, различия контекста или неподходящую границу динамики. Документация 1С-Битрикс рекомендует обращать внимание на статистику перезаписей и использовать отладку. Не делайте вывод по одному большому числу без периода наблюдения: редакционные обновления и развёртывания тоже меняют страницу законным образом.
Сравните безопасные различия двух последовательных версий. Причиной могут оказаться текущая отметка времени, случайное значение, пользовательская вставка или условно подключаемый ресурс. Это примеры гипотез. Найдите конкретное различие и объясните, должно ли оно находиться в общей оболочке. Массовое исключение блоков из кэша без анализа может убрать симптом ценой всей пользы режима.
Отладочный режим тоже имеет стоимость и способен создавать дополнительные файлы. Не оставляйте его бесконтрольно включённым после расследования. Согласуйте период наблюдения и способ удаления только ненужных диагностических артефактов в разрешённой среде. Из статьи не следует универсальная команда очистки: пути и правила хранения зависят от установки.
Проверить обновление контента и конфигурации
После изменения описания товара или шаблона посетитель должен получить актуальную версию по установленным правилам. Проверьте обычное сохранение в CMS, а не только полную очистку кэша вручную. Если каждое редакторское действие требует разработчика, автоматическое обновление работает неполно. Определите, какое событие инвалидирует нужную страницу и как долго допустимо старое представление.
Изменение CSS и изменение данных могут иметь разные пути доставки. Сохранённая оболочка способна ссылаться на старый ресурс, а браузер дополнительно хранить его копию. Сравните ссылки на ассеты и фактические ответы. Не делайте вывод о кэше страницы по одному старому цвету кнопки: проблема может лежать в версии статического файла.
Проверьте разные сайты и языки, если они используют общие компоненты. Ключи и контекст должны сохранять различия. Прогрев русской витрины не должен давать другой локализации её меню или контакты. Даже общие данные каталога могут иметь разные подписи и адреса. В матрице приёмки отмечают именно те области, которые реально различаются в проекте.
Сравнить измерения без обещания общего балла
Определите, какое измерение должна изменить доработка: время выдачи HTML, работа серверного пути или повторный запрос. Общий балл инструмента включает и другие аспекты, поэтому может не повторять изменение одного показателя. Документация технологии также предупреждает о такой границе. Отчёт должен показывать наблюдаемую часть, а не обещать идеальную оценку всей страницы.
Сравнивайте одинаковый URL, состояние посетителя и режим кэша. Холодный и прогретый запросы нельзя смешивать в одну пару без пояснения. Повторите измерение разумное число раз и сохраните условия. Не добавляйте вымышленные проценты ускорения в статью; учебный протокол с понятным критерием полезнее красивого числа без выборки.
Если серверная выдача ускорилась, но интерактивный блок стал готов позже, покажите оба наблюдения. Посетителю важно завершить действие, а не только увидеть оболочку. Проверьте время появления пригодной к использованию цены или кнопки. Компромисс между ранним показом и готовностью динамических данных должен быть осознанным и не ухудшать критический сценарий.
Завершить проверку по состояниям
| Сценарий | Что подтверждает готовность |
|---|---|
| Гость после прогрева | Общая оболочка без чужих данных |
| Два типа покупателя | Своё правило цены в каждом контексте |
| Изменение корзины | Одно изменение корзины и правильный состав |
| Отказ динамического ответа | Понятное ограниченное состояние |
| Сохранение контента | Актуальное представление штатным способом |
| Повторная загрузка | Нет лишних обработчиков и перезаписей |
В итоговой заметке укажите проверенные URL-типажи, состояния сессий, границы динамических областей и обнаруженные ограничения. Не сохраняйте клиентские значения и целые HTML-страницы с персонализацией в публичный пакет. Для иллюстрации достаточно собственной схемы общей оболочки и изменяемых блоков с условными ценами.
Композит можно считать принятым, когда повторная выдача использует предусмотренный кэш, динамические данные остаются правильными, а обычные изменения доходят до посетителя. Само включение переключателя в административной части не подтверждает эти условия. Повторите проверку в обратном порядке сессий: сначала покупатель Б, затем А. Так можно обнаружить зависимость результата от того, кто первым сформировал сохранённую оболочку.
Связанный разбор: Почему сайт медленно загружается: как отличить проблему хостинга, кода, базы данных и изображений.
Документация и источники
- 1С-Битрикс: проверка композитного сайта: Проверка сохранённых страниц, перезаписей и отладочного поведения
- 1С-Битрикс: композитный режим: Разделение статической выдачи и динамического контента