добрый день! помогите пожалуйста решить такую проблему: у меня есть включаемая область, со следующим кодом:<?
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>'4', "CODE"=>"vendor"));
while($enum_fields = $property_enums->GetNext())
{
$arFilter = Array( "IBLOCK_ID"=>4, "ACTIVE"=>"Y", "SECTION_ID"=>'32', "PROPERTY_vendor_VALUE"=>$enum_fields['VALUE'], );
$res = CIBlockElement::GetList(Array(), $arFilter, Array());
if ($res) {
echo "[*] <span class='number'>(".$res.")</span>";
}
}
?>
то есть происходит сначала выборка всех свойств списка производитель и для тех, в которых есть элементы с таким свойством выводятся в список с указанием количества товаров с этим производителем.
в ней получается целых 28 запросов, что делает загрузку страницы очень длительной, хотелось бы как-то кэшировать именно включаемую область с результатами запроса. как это лучше сделать?или может есть идеи как лучше реализовать такую задачу?
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>'4', "CODE"=>"vendor"));
while($enum_fields = $property_enums->GetNext())
{
$arFilter = Array( "IBLOCK_ID"=>4, "ACTIVE"=>"Y", "SECTION_ID"=>'32', "PROPERTY_vendor_VALUE"=>$enum_fields['VALUE'], );
$res = CIBlockElement::GetList(Array(), $arFilter, Array());
if ($res) {
echo "[*] <span class='number'>(".$res.")</span>";
}
}
?>
то есть происходит сначала выборка всех свойств списка производитель и для тех, в которых есть элементы с таким свойством выводятся в список с указанием количества товаров с этим производителем.
в ней получается целых 28 запросов, что делает загрузку страницы очень длительной, хотелось бы как-то кэшировать именно включаемую область с результатами запроса. как это лучше сделать?или может есть идеи как лучше реализовать такую задачу?