16  /  26

Отладка

Просмотров: 43913
Дата последнего изменения: 19.08.2021
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

  Отладка

Основной инструмент отладки - это страница Настройки > Настройки продукта > Композитный сайт > Отладка, на которой производится логирование всех ошибок:

Нажмите на рисунок, чтобы увеличить

По умолчанию инструмент отключён. Укажите требуемый период работы Отладки и включите её. В списке отобразится список страниц не создавших свой файл кеша с данными по странице. Для гарантии появления в списке нужной странице зайдите на неё под пользователем, которому она должна быть отдана в виде кеша.

Основные инструменты работы в ней:

  • Тип события - причина попадания страницы в список. По этой причине можно принимать решение о необходимости доработки страницы. Все возможные ошибки и способы решения:
    • Перезапись кеша. Частая ошибка, имеющая несколько причин. Решение.
    • Голосование компонента "Против" - включить голосование компонента "за". (Неактуально для Автокомпозита.)
    • Вызов RestartBuffer. Как правило этот метод работает на страницах, которые не должны кешироваться. Если нужно чтобы страница кешировалась, избавьтесь от этого вызова.
    • Сброс кеша. Нормальная ситуация, когда сброс кеша происходит при обновлении контента страницы, при обновлении системы (не всегда сбрасывается кеш) и при использовании в URL параметра &clear_cache=Y.
    • Не GET-запрос. В технологии работают только GET запросы.
    • Параметр ncc - параметр URL по умолчанию для запрета на кеширование. Решение - удалить параметр, если он добавлен вручную.
    • Cookie NCC - служебная cookie Cookie - это текстовая строка информации, которую веб-сервер передает в браузер посетителя сайта и которая сохраняется в файле на устройстве посетителя сайта. Как правило, используется для определения уникальности посетителя, времени его последнего визита, личных настроек, уникального идентификатора корзины покупок и т.д.

      Подробнее...
      _NCC (No Composite Cache). Решение - настроить группы.
    • Маска исключения - страница добавлена в поле Маска исключения настроек композитного сайта. Решение - исключить страницу из поля.
    • Параметр Исключения - в URL страницы присутствует параметр, добавленный в поле Параметры URL, при которых не будет работать композитный режим настроек. Решение - исключить параметр из этого списка.
    • Неверный домен не указан домен в поле Список доменных имен. Решение - добавить домен в поле.
    • Неверный параметр запроса. Параметр отсутствует в поле а также страницы содержащие только следующие параметры настроек Композита.
    • Локальный редирект внутри системы, например - короткие ссылки.
    • Административная панель. Независимо от группы, в которой состоит пользователь, кеш не будет применяться к странице на которой отображается Административная панель.
    • Аварийное завершение PHP (die) - кеш не создан из-за вызова функции die или exit.
    • Страница против кеширования (markNonCashable) - установлен запрет на кеширование страницы. Решение - удалить запрет.
    • Композитный Javascript не внедрён. Редкая ошибка, когда возникли какие-то проблемы с внедрением JS. Устранение - дебаг кода.
    • Cookie CC не найдена. Решение - настроить группы.
    • Параметр sessid - в запросе есть сохранённая авторизация.
    • Ajax запрос. Запрос сделан с помощью BX.ajax. Такие запросы не кешируются.
    • Директория /bitrix - административный раздел по умолчанию включён в Маску исключения и не удаляется из неё.
    • Файл index-controller.php - адрес, запрещённый для кеширования.
  • Пользователь - логин пользователя, обращение которого не создало кеш.
  • Сообщение - служебная информация для части событий, по которым возможна расширенная отладка.

Сравнение версий

Ссылка в колонке Сообщения Сравнить версии открывает в новом окне две версии страницы: старую и новую, где простейший сравниватель покажет зелёным - добавленную часть кода, красным - удалённую. Если возможности штатного сравнивателя не устраивают разработчика, то по ссылкам исходный код в "шапке" можно скачать исходный код для более тщательной проверки.

Нажмите на рисунок, чтобы увеличить

Версия ниже 17.1.0

Внимание! Если сайт создаётся на дистрибутиве версии ниже 17.1.0, то необходимо определить в файле dbconn.php константу define("BX_COMPOSITE_DEBUG", true);. В этом случае в лог будут писаться все голосования "против", а также создаваться история изменений страниц в кеше (/bitrix/html_pages/<domain>/) с расширением .delete.<microtime>.

На работающем сайте использование этой константы приведет к увеличению использования дискового пространства. Поэтому её лучше отключить после настройки Композитного сайта.

Основной инструмент работы - это лог, который генерирует функция AddMessage2Log. Место расположения лога определяется настройками dbconn.php:

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/../log.txt");

В логе можно увидеть список шаблонов, которые голосовали "против":

В примере лога видно, что компонент меню "возражает" против использования его в технологии Композитный сайт.




9
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии