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

GetTemplateCachedData

Описание

mixed 
GetTemplateCachedData();

Метод GetTemplateCachedData вызывают, если не используется встроенное в компонент кэширование и при этом вызов IncludeComponentTemplate кэшируется. Этот метод возвращает данные, которые необходимо сохранить в кэше, а потом восстановить из кэша и вернуть шаблону методом SetTemplateCachedData. Нестатический метод.

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

  • Кэширование в компоненте
  • CBitrixComponent::SetTemplateCachedData
  • Пример

    // Проверка и инициализация входных параметров
    if ($arParams["ID"] <= 0)
    	$arParams["ID"] = 10;
    
    $arParams["CACHE_TIME"] = IntVal($arParams["CACHE_TIME"]);
    $CACHE_ID = SITE_ID."|".$APPLICATION->GetCurPage()."|";
    // кэш зависит только от подготовленных параметров без "~"
    foreach ($this->arParams as $k => $v)
    	if (strncmp("~", $k, 1))
    		$CACHE_ID .= ",".$k."=".$v;
    $CACHE_ID .= "|".$USER->GetGroups();
    
    $cache = new CPHPCache;
    if ($cache->StartDataCache($arParams["CACHE_TIME"], 
    	$CACHE_ID, 
    	"/".SITE_ID.$this->GetRelativePath()))
    {
    	// Запрос данных и формирование массива $arResult
    	$arResult = array("a" => 1, "b" => 2);
    
    	// Подключение шаблона компонента
    	$this->IncludeComponentTemplate();
    
    	$templateCachedData = $this->GetTemplateCachedData();
    
    	$cache->EndDataCache(
    		array(
    			"arResult" => $arResult,
    			"templateCachedData" => $templateCachedData
    		)
    	);
    }
    else
    {
    	extract($cache->GetVars());
    	$this->SetTemplateCachedData($templateCachedData);
    }


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