Документация для разработчиков
Темная тема

AbortResultCache

Описание

void
AbortResultCache();

Метод поддержки внутреннего кеширования компонента. Нестатический метод.

Применяется, если в результате выборки данных (в случае отсутствия валидного кеша) выяснилось, что кешировать данные не требуется. Например, если новости с требуемым ID нет, следует прервать кеширование и выдать сообщение, что такой новости нет. Если кеширование не прервать, то злоумышленники смогут увеличить кеш до всего отведенного сайту дискового пространства, вызывая страницу с произвольными (в том числе и не существующими) ID.

Смотрите также

  • CBitrixComponent::StartResultCache
  • CBitrixComponent::ClearResultCache
  • Пример

    // Проверка и инициализация входных параметров
    if ($arParams["ID"] <= 0)
    	$arParams["ID"] = 10;
    
    // Если нет валидного кеша (то есть нужно запросить
    // данные и сделать валидный кеш)
    if ($this->StartResultCache())
    {
    	// Запрос данных и заполнение $arResult
    	$arResult = array(
    		"ID" => rand(1, 100)
    	);
    
    	for ($i = 0; $i < 5; $i++)
    		$arResult["FIELDS"][] = rand(1, 100);
    
    	// Если выполнилось какое-то условие, то кешировать
    	// данные не надо
    	if ($arParams["ID"] < 10)
    		$this->AbortResultCache();
    
    	// Подключить шаблон вывода
    	$this->IncludeComponentTemplate();
    }
    
    // Установить заголовок страницы с помощью отложенной
    // функции
    $APPLICATION->SetTitle($arResult["ID"]); 
    


    © «Битрикс», 2001-2024, «1С-Битрикс», 2024