Кеширование компонента

В файле компонента component.php доступен метод $this->StartResultCache(), который кеширует данные. Для работы данного параметра при подключении компонента надо передать два параметра: CACHE_TYPE и CACHE_TIME.

$APPLICATION->IncludeComponent(
    "mycomponent:custom",
    "",
    [
        // данные, для кеширования компонента
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "36000000",
    ]
);

Теперь в файле «component.php» можно использовать $this->StartResultCache().

# component.php

// код из шаблона будет выводиться из кеша
if ($this->StartResultCache()) {
    $this->IncludeComponentTemplate();
}

При изменении кода шаблона, на странице будет выводиться закешированная информация. Чтобы выводился изменённый контент из шаблона, для этого надо будет очистить кеш.

Кеш зависит от параметров, которые были переданны компоненту. Если значение одного из параметров будет изменено, то создаста другой кеш для компонента с текущими параметрами.

Кеш компонента, в зависимости от группы пользователя

Можно кешировать компоненты для разных групп пользователей, для этого надо передать параметр $USER->GetUserGroupString().

# component.php

global $USER;
if ($this->StartResultCache(false, $USER->GetUserGroupString())) {
    $this->IncludeComponentTemplate();
}