Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемconf.1c-bitrix.ru
1 Управляемый кеш компонентов Максим, Смирнов программист
2 Цели управляемого кеширования Описание проблемы: Для комфорта пользователей - высокая скорость создания страниц Высокая скорость обеспечивается использованием кеширования. Кеширование требует понимания от контент менеджеров. Разработчики затрачивают дополнительные усилия для реализации механизмов сброса кеша при изменениях контента. Решение проблемы: Разработка и реализация технологии управления кешем без привлечения дополнительных усилий разработчиков. При минимальных затратах серверных ресурсов.
3 Идея реализации Компоненты для кеширования используют метод StartResultCache. Связать с файлом кеша некие метки (теги) и сохранить их в БД. При необходимости сброса кеша: по меткам определить файлы кеша удалить их На практике теги привязываются не к файлам, а каталогам.
4 Как это работает news.list/component.php: news.list/component.php CBitrixComponent::StartResultCache(); CPHPCache::StartDataCache(…, $cachePath); $CACHE_MANAGER->StartTagCache($cachePath); CIBlockResult::GetNextElement/GetNext/Fetch(); $CACHE_MANAGER->RegisterTag("iblock_id_".$res["IBLOCK_ID"]); CBitrixComponent::IncludeComponentTemplate/EndResultCache(); $CACHE_MANAGER->StartTagCache(); CPHPCache::EndDataCache(); StartTagCache(); CPHPCache::EndDataCache();">
5 Вложенность тегов $CACHE_MANAGER->StartTagCache(«news.list/c45»); $CACHE_MANAGER->RegisterTag(«news_tag»); $CACHE_MANAGER->EndTagCache(); $CACHE_MANAGER->StartTagCache(«iblock.vote/e67»); $CACHE_MANAGER->RegisterTag(«vote_tag»); $CACHE_MANAGER->EndTagCache(); b_cache_tag
6 Сброс кеша Основные классы модуля используемые в компонентах CIBlock CIBlockSection CIBlockElement Методы модификации данных Add Update Delete $CACHE_MANAGER->ClearByTag("iblock_id_".$IBLOCK_ID); Обработчики событий
7 Рекомендации по использованию Не подходит для проектов с часто обновляемой информацией т.к. приводит к постоянной генерации кеша. Не подходит для больших объемов кеша т.к. удаление файлов может сильно нагрузить сервер. Не сбрасывается для не детерминистических данных примером может быть дата начала активности элемента.
8 Спасибо за внимание! Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.