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

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
}


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