Обычно когда стояла задача подсчета количества элементов в меню, вопрос решался вынесением компонента menu.sections в свое пространство имен и добавлением параметра true подсчета количества элементов
Но появился сайт, где элементов в разделе много (большое количество элементов под заказ, большая база) и данный запрос выполняется 1.3 секунды.
Стандартное решение битрикса это использовать кеширование, но данный вариант тоже не очень устраивает, тк товары обновляются каждые два часа и возможно изменение количества товаров разделе.
Получается, что при сбросе кеша в компоненте меню раз в два часа, какой-то пользователь получит долгую загрузку страницы, да это вариант. Но хочется получить лучший результат. На данный момент пошли по пути использования функции CIBlockElement::GetList, где третим параметром передается массив, что в результате выдает количество элементов в разделе быстро, но приходится применять данную функцию для каждого раздела. В итоге количество запросов достигает 300.
Писал, в ТП, передали в отдел разработок.
Интересует, кто-нибудь нашел решение данной проблемы. Писать свой прямой запрос в базу для подсчета количества?
Спасибо!
Разработка интернет магазина под ключ на 1С-Битрикс www.electroid.org, интеграция битрикс и 1С.