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

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-2021, «1С-Битрикс», 2021
    Наверх