Bitrix - StartResultCache
Войти

Bitrix - StartResultCache

StartResultCache

Метод поддержки внутреннего кeширования компонента. При наличии актуальнго кеша возвращаем false, выводит его содержимое на экран и заполняет массив $arResult данными из кеша. Если актуального кеша нет, метод возвращает true, инициализирует процесс кеширования, который завершается подключением шаблона в методе IncludeComponentTemplate или ShowComponentTemplate.

StartResultCache($cacheTime, $additionalCacheID, $cachePath);

$cacheTime - время кеширования в секундах
$additionalCacheID - переменные от которых может зависеть кеш (набор параметров)
$cachePath - путь к файлу кеша относительно папки кеша

cacheTime

Время кеширования в секундах. Если этот параметр равен False, то время кеширования берется из входного параметра $arParams["CACHE_TIME"]. Необязательный.

additionalCacheID

Кеш зависит от текущего сайта ( SITE_ID), имени компонента, имени шаблона, входных параметров $arParams. Если кеш должен зависеть от каких-либо дополнительных параметров, то их необходимо передать сюда в виде строки. По умолчанию параметр равен False, т.е. кеш зависит только от текущего сайта SITE_ID, имени компонента, имени шаблона и входных параметров $arParams. Необязательный.

cachePath

Путь к файлу кеша относительно папки кешей. По умолчанию равен "/".SITE_ID.<путь к компоненту относительно bitrix/components>. Необязательный.

1
2
3
4
5
6
7
8
9
10
11
12
<?php 

if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"false$USER->GetGroups())))
{
 if(!\
Bitrix\Main\Loader::includeModule("iblock"))
 {
  
$this->AbortResultCache();
  
ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
  return;
 }

?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php 

// Если нет валидного кеша (то есть нужно запросить
// данные и сделать валидный кеш)
if ($this->StartResultCache())
{
   
// Запрос данных и заполнение $arResult
   
$arResult = array(
      
"ID" => rand(1100)
   );

   for (
$i 0$i 5$i++)
      
$arResult["FIELDS"][] = rand(1100);

   
// Если выполнилось какое-то условие, то кешировать
   // данные не надо
   
if ($arParams["ID"] < 10)
      
$this->AbortResultCache();

   
// Подключить шаблон вывода
   
$this->IncludeComponentTemplate();
}

// Установить заголовок страницы с помощью отложенной
// функции
$APPLICATION->SetTitle($arResult["ID"]);

?>
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 

//StartResultCache проверяет, есть ли у нашего компонента актуальный кеш.
 
$this->StartResultCache

//Метод отменяет кэширование в компоненте.
 
$this->AbortResultCache

//Метод очищает кэш компонента.
//В случае успешного выполнения очистки возвращает true
 
$this->ClearResultCache

?>
Теги:
php