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

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
    Наверх