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

StartResultCache

Описание и параметры

bool
StartResultCache([
	int cacheTime [,
	string additionalCacheID [,
	string cachePath]]]
);

Метод поддержки внутреннего кеширования компонента. Нестатический метод.

Если кеш действителен, метод отправляет на экран его содержимое, заполняет $arResult и возвращает False. Если кеш недействителен, метод возвращает True, кеширование завершается и кеш сохраняется при вызове методов CBitrixComponent::IncludeComponentTemplate или CBitrixComponent::ShowComponentTemplate сразу после подключения шаблона компонента.

Параметры

ПараметрОписание
cacheTime Время кеширования в секундах. Если этот параметр равен False, то время кеширования берется из входного параметра $arParams["CACHE_TIME"]. Необязательный.
additionalCacheID Кеш зависит от текущего сайта ( SITE_ID), имени компонента, имени шаблона, входных параметров $arParams. Если кеш должен зависеть от каких-либо дополнительных параметров, то их необходимо передать сюда в виде строки. По умолчанию параметр равен False, т.е. кеш зависит только от текущего сайта SITE_ID, имени компонента, имени шаблона и входных параметров $arParams. Необязательный.
cachePath Путь к файлу кеша относительно папки кешей. По умолчанию равен "/".SITE_ID.<путь к компоненту относительно bitrix/components>. Необязательный.

Возвращаемое значение

Возвращает True в случае, если кеш недействителен, или False в противном случае.

Пример

// Проверка и инициализация входных параметров
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"]);

// кеш должен зависеть от групп пользователей, которым принадлежит посетитель
if ($this->StartResultCache(false, $USER->GetGroups()))
{
	// Валидного кеша нет. Выбираем данные из
	// базы в $arResult
}


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Владамир Мукашев
Вторым параметром можно закидывать массив с ключами, от которых будет зависеть кеш
Код
if($this->startResultCache(false, array(($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups()), $bUSER_HAVE_ACCESS, $arNavigation, $arrFilter, $pagerParameters)))
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх