Bitrix отключить кэш на странице

Обновлено: 02.07.2024

Кеширование позволяет уменьшить нагрузку на аппаратные ресурсы, таким образом влияя на время отклика сайта. Используется как в стандартных компонентах, так и в компонентах, разработанных под свои нужды. Результаты ресурсоемких, а так же редко обновляемых кусков кода заносятся в кеш, при повторном запросе результат выдается из кеша.

Старое ядро

В старом ядре Битрикс для кеширования есть два класса — это CPageCache и CPHPCache . Первый служит для кеширования сформированного HTML-кода, второй — для кеширования HTML-кода и PHP-переменных. Файлы кеша записываются в каталог /bitrix/cache/ .

Класс CPageCache

Значение переменной $cacheDir начинается со слеша и им не заканчивается. При использовании в качестве кеша memcached это будет критичным при сбросе кеша.

Файл кеша /bitrix/cache/some-cache-dir/47/476bb6ea1797242d5401ed9ec02c831e.html содержит в себе отметку времени (функция time() ) — когда она станет меньше текущей, кеш уже не актуален:

Класс CPHPCache

Пример кеширования PHP-переменных:

Файл кеша /bitrix/cache/other-cache-dir/47/476bb6ea1797242d5401ed9ec02c831e.php :

Еще один пример — в кеш сохраняется HTML-код и PHP-переменные:

Внутри HTML-кеша нельзя использовать отложенные функции. По той простой причине, что они просто не будут выполняться. Точнее говоря, функции будут выполнены один раз в момент создания файла кеша. А при всех последующих запросах будет выдано закешированное содержимое. Поэтому в коде выше функции SetTitle() и AddChainItem() вызываются за пределами HTML-кеша.

Файл кеша /bitrix/cache/other-cache-dir/47/476bb6ea1797242d5401ed9ec02c831e.php :

Новое ядро

Аналогом CPHPCache в новом ядре является класс \Bitrix\Main\Data\Cache . Основные различия в методах в том, что названия методов нового класса пишутся с прописной буквы в соответствии с новыми требования оформления кода. В остальном внешне изменений практически нет:

Файл кеша /bitrix/cache/another-cache-dir/47/476bb6ea1797242d5401ed9ec02c831e.php :

Очистить кеш, сохраненный в директории /bitrix/cache/another-cache-dir/ можно следующим образом:

Очистить весь кеш (т.е. все содержимое директории /bitrix/cache/ ):

Этот код промаркирует директрии кеша на удаление:

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

Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.

Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте "1С-Битрикс". .

Курс для разработчиков - продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено.

Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:

  • Интерфейс программы - в главе Элементы управления курса Контент-менеджер.
  • Компоненты 2.0 (начальные сведения) в главе Компоненты 2.0 (начальные сведения) курса Контент-менеджер.
  • Информационные блоки - в главе Информационные блоки (начальные сведения) курса Контент-менеджер.
  • Управление доступом к файлам, элементам контента, модулям и другие права доступа в главе Управление доступом курса Администратор. Базовый.
  • Работа с инструментами системы - в главе Работа с инструментами курса Администратор. Базовый.
  • Модуль Поиск - в главе Поиск курса Администратор. Базовый.
  • Вся информация по администрированию модулей размещена в курсах:
      - модули "1С-Битрикс: Управление сайтом" - модули "1С-Битрикс: Управление сайтом", связанные с коммерческой деятельностью в Интернете. - модули "1С-Битрикс: Корпоративный портал"

    Как построен курс

    Общепринятая градация квалификации разработчиков в рамках курса обозначает что:

    • Junior сможет создавать простые сайты работая со штатными компонентами и модифицируя их шаблоны.
    • Middle разработчик может работать с API Bitrix Framework.
    • Senior умеет работать над производительностью и безопасностью сайтов, создавать свои модули и компоненты.
    Примечание: Такое построение удобно для пошагового изучения принципов работы Bitrix Framework. По этому же принципу построены и тесты. Но такая структура не очень удобна для использования содержания курса как постоянного источника информации. Что бы переключить курс в режим Справочника, воспользуйтесь переключателем в верхнем правом углу шапки курса.

    Начальные требования к подготовке

    Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):

    • основами PHP, баз данных;
    • основами HTML, CSS.

    У нас часто спрашивают, сколько нужно заплатить

    Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.

    Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

    Баллы опыта

    В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
    окно подтверждения:


    уроке.

    Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.

    Тесты

    После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.

    Комментарии к статьям

    Что дальше?

    Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:

    Для преподавания оффлайн

    Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).

    Если нет интернета

    iPhone:
    FBReader
    CoolReader
    iBook
    Bookmate

    Windows:
    Calibre
    FBReader
    Icecream Ebook Reader
    Плагины для браузеров:
    EpuBReader – для Firefox
    Readium – для Google Chrome

    iOS
    Marvin for iOS
    ShortBook
    обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.

    Кеш - это специальное хранилище, в котором сохраняются результаты работы редко обновляемых или ресурсоёмких кусков кода.

    Управление размещением кеша можно через константы в файлах /bitrix/php_interface/dbconn.php и /bitrix/.settings.php. В dbconn.php используется константа BX_CACHE_TYPE, которая может принимать значения:

    • files – размещать кеш на жёстком диске. Используется по умолчанию;
    • memcache, apc, xcahe – соответствующая внешняя система кеширования. Прежде чем её выбрать, следует удостовериться, что она установлена на сервере, иначе будет использоваться файловая система.

    КАК РАБОТАЕТ КЕШ В BITRIX

    В Битриксе существует несколько вариантов кеширования

    1. Неуправляемое кеширование – Результат работы сохраняется в виде файла и возвращается до тех пор, пока не истечёт его время жизни, после чего он будет перестроен. Неуправляемым этот тип кеширования называется потому, что перестраиается только после истечения своего времени жизни.
    2. Управляемое кеширование – в отличие от неуправляемого кеширования обновляется при обновляется при изменении исходных данных компонента.
    3. Автокеширование Вариант управляемого кеширования для компонентов. Каждый компонент заводит собственный кеш и управляет им. Такое кеширование может быть отключено для всех компонентов из админки.
    4. Кеширование меню – Вариант управляемого кеша, созданный специально для меню.
    5. HTML кеширование – устаревший тип кеширования, заменённый композитным сайтом.

    ИСПОЛЬЗОВАНИЕ КОМПОЗИТНОГО САЙТА

    Композитный сайт - один из видов кеширования в Битрикс. Основная идея заключается в том, чтобы разделить сайт на две части — статическую и динамическую. Статическая часть кешируется и сразу отдаётся клиенту при запросе, после чего, через AJAX-запросы, запрашиваются динамические части страницы. Благодаря этому кажется, что страница загрузилась быстрее. Композитный сайт можно запустить в разделе Настройки > Настройки продукта > Композитный сайт в режиме Автокомпозит, либо Композит.

    При режиме автокомпозит, битрикс автоматически производит настройки компонентов автоматически. Для сложных сайтов можно выбрать режим Композит, однако настраивать компоненты придётся вручную.

    После включения рекомендуется несколько раз пройтись по страницам сайта в режиме «Инкогнито», чтобы создать кеш для страниц. При этом можно заметить, что на страницах появляется кнопка «Быстро с 1С-Битрикс». Настроить её вид, или отключить полностью можно на вкладке Кнопка "Быстро с 1С-Битрикс" в разделе Настройки > Настройки продукта > Композитный сайт. Следует помнить, что для того чтобы сайт отобразил эти изменения на страницах, придётся сбросить их кеш.

    При настройке композитного сайта можно увидеть параметр - Голосование за композитный режим. Смысл его в следующем — компоненты страницы голосуют за включение композитного режима на странице. Режим включится, если большинство компонентов проголосует «За».

    Параметр «Содержимое компонента» указывает, будет ли содержимое статическим, или подгружаться через AJAX, и если да, то в каком виде.

    В 1C-Bitrix, как, собственно, и в других популярных на момент написания статьи CMS, существует своя система кэширования данный сайта. При внесении изменений в тему сайта или какого-либо его компонента необходимо чистить этот кэш для получения актуальной информации.

    Существует несколько разных способов, которые решают поставленную в заголовке этой статьи задачу, поэтому подробно рассмотрим каждый из них.

    Удаление (сброс) кэша в 1C-Bitrix через панель управления сайтом

    Начнем со стандартного способа очистки кэша в 1C-Bitrix.

    2. В левом меню откройте раздел «Настройки», а в появившемся меню перейдите в «Настройки продукта» – «Автокеширование».

    Как очистить (удалить) кэш сайта в 1C-Bitrix?

    3. На открывшейся странице переключитесь на вкладку «Очистка файлов кеша», где отмечаете нужный вариант и жмете «Начать».

    Как очистить (удалить) кэш сайта в 1C-Bitrix?

    Доступные варианты и их пояснения:

    1. Только устаревшие – файлы, у которых закончилось время жизни;
    2. Все – все файлы кэша;
    3. Меню – закэшированные меню сайта;
    4. Весь управляемый – все файлы из папки /bitrix/managed_cache/;
    5. Все страницы HTML кеша – кэшированные страницы, созданные технологией «Композитный сайт».

    Помимо этого, кэш можно сбросить для конкретной страницы, посетив ее под профилем администратора:

    Как очистить (удалить) кэш сайта в 1C-Bitrix?

    А также для отдельного компонента в его настройках, вызвав соответствующую опцию в режиме правки.

    Удаление (сброс) кэша технологии «Композитный сайт» в 1C-Bitrix

    Как очистить (удалить) кэш сайта в 1C-Bitrix?

    Или через API, выполнив следующий PHP-код по пути «Настройки» – «Инструменты» – «Командная PHP-строка»:

    Или через планировщик заданий (Cron), указав выполнение следующей команды в заданный промежуток времени:

    Удаление (сброс) кэша сайта в 1C-Bitrix через FTP или файловый менеджер

    Если по какой-либо из причин у вас нет доступа к панели управления сайтом, очистить кэш можно вручную, удалив все содержимое папок /bitrix/cache/ и /bitrix/managed_cache/ удобным для вас способом.

    При использовании технологии «Композитный сайт», дополнительно нужно удалить папку domain и файл .enabled по пути /bitrix/html_pages/, где «domain» – домен вашего сайта, при этом после завершения работа этой функции прекратиться и ее (по необходимости) нужно включить вновь. Сам способ не рекомендуем, используйте его только в случае недоступности панели управления.

    Дополнительно: кэш из папки /bitrix/cache/ можно удалить с помощью следующей функции, выполнив ее по пути «Настройки» – «Инструменты» – «Командная PHP-строка»:

    В ней «true» – показатель того, что нужно удалить все файлы (в случае с false будут удалены только устаревшие), а «/»– путь к удаляемым файлам кэша относительно /bitrix/cache/.

    Если неуправляемый кэш сайта из папки /bitrix/cache/ не удаляется, пропишите в файле dbconn.php, который находит в папке /bitrix/php_interface/ следующие строки:

    Таким образом, вы решаете вопрос с правами сервера, которые, в свою очередь, мешают корректному удалению файлов кэша.

    Универсальная галерея - модуль для битрикс

    В данной статье я не буду описывать всю технологию, ибо документация по ней присутствует, а отмечу только те моменты, с которыми, по моему мнению, могут возникнуть трудности или непонимание на начальном этапе.
    [spoiler]
    Голосование компонентов

    Наверно вы уже видели в шаблонах разных компонентов такую строку:

    Так вот, данная функция ничего не включает и не отключает, она только "ГОЛОСУЕТ" за или против использования композитного кеширования на странице, где находится компонент. Это значит, что если в зависимости от настройки композитного режима в админке, а именно опции "Голосование шаблона компонента по умолчанию" (может быть "За" или "Против") и учета голосов всех компонентов на странице, композитный режим кеширования на данной странице будет включен или выключен. При этом, если в админке по умолчанию установлено "Против", то чтобы композитный режим был включен, за него явно должны проголосовать все компоненты.

    Динамические области внутри шаблонов компонентов

    Динамические области, т.е. те фрагменты html-кода, которые будут подгружены аяксом после загрузки закешированной страницы, выделяются в шаблоне компонента при помощи $this->createFrame()->begin(). При этом, есть несколько вариантов их использования, в зависимости от указания параметров как у createFrame, так и у begin.

    В первом параметре createFrame указывается DOM идентификатор контейнера, в который будет подгружена динамическая область область после загрузки закешированной странице. При этом во втором параметре следует указать false.

    При этом после $frame->beginStub() указывается html-код "заглушки", т.е. тот html, который будет показан до того, как будет подгружена динамическая область. $frame->beginStub() указывать необязательно, можно указать html код заглушки в первом параметре функции begin (а если заглушка не нужна, то в этом параметре при отсутствии $frame->beginStub() следует указывать пустую строку):

    Отмена композитного кеширования

    Отменить композитное кеширование в любом месте страницы можно с помощью следующей инструкции:

    1. По наличию ссылки "Быстро с 1С-Битрикс", которая появится внизу страницы, если соответствующая ссылка разрешена в настройках композитного кеша (позицией данной кнопки на странице также можно управлять с помощью специального div-контейнера).
    2. С помощью расширения "Bitrix Composite Notifier" для браузера "Google Chrome". Если страница идет из композитного кеша, иконка расширения становится цветной вместо серой, и при нажатии на иконку будет отображаться дополнительная информация.

    Для отладки можно включить лог композитного кеша. Если, например, какой-то компонент голосует против композитного кеша, записи в логе помогут определить какой и т.д. Включить лог можно так:

    Сброс кеша при помощи api

    Сброс композитного кеша вручную производится на той же странице админки "Настройки кеширования", на которой производится сброс орбычного (не коспозитного кеша). А вот у удалениея кеша при помощи api существуют некоторые особенности.

    Читайте также: