@KASich

Как ускорить загрузку компонента catalog.section?

На одной странице требуется вывести несколько групп товаров.

Группа 1.
1) Товар 5
2) Товар 8
3) Товар 2

Группа 2.
1) Товар 2
2) Товар 7
3) Товар 3

Вывожу эти товары через компонент catalog.section. Но таких групп на странице очень много (50+) и поэтому загрузка страницы достаточно долгая.

Отсюда и вопрос, как ускорить загрузку компонента section.catalog? Если поможет исключение загрузки не нужных полей (анонс, описание, дата создания и изменения, свойства и т.д.), то как это сделать?
А возможно вы посоветуете другой способ вывода товаров.

Вывод товаров выглядит так:
<?$param = array(
...
"FILTER_NAME" => "arrFilter",
...
);?>

<span>Группа 1</span>
<?$arrFilter = array("ID" => array('5','8','2'));?>
<?$APPLICATION->IncludeComponent('bitrix:catalog.section', 'catalog_table', $param);?>

<span>Группа 2</span>
<?$arrFilter = array("ID" => array('2','7','3'));?>
<?$APPLICATION->IncludeComponent('bitrix:catalog.section', 'catalog_table', $param);?>


PS. CACHE_FILTER => Y помог, но не сильно.
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ответы на вопрос 1
AlexeyCaTHaR
@AlexeyCaTHaR
Я бы вообще подумал в сторону создания своего компонента. Посмотрите в отладчике сколько запросов делает компонент.
Прикиньте, что вам надо один запрос для группы через тот же CIBlockElement::GetList();
А если добавить нормальное кеширование выборки и сделать одну выборку, с дальнейшим разбиением по группам вне запроса, а так же посмотреть параметр innodb_flush_log_at_trx_commit для базы. Битрикс рекомендует 0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы