Задать вопрос

Как работает кеширование в битрикс?

Всем привет!

Подскажите как работает кеширование в битрикс (версия бизнес)?
конкректно список товаров (с детальной страницой товара все понятно)

пример:
Есть каталог товаров 8 товаров
на странице выводятся по 4 товара (итого 2 страницы)

пользователи гуляют по каталогу, страницы сохраняются в кеш
и если я отредактирую товар №8, который находится на второй странице, то при заходе на первую страницу (на которой нет этого товара) кеш будет создаваться заново?

к чему я это все:

Есть каталог товаров, в списке товаров есть кнопка в корзину и в список желаний, при стандартных настройках каталога, эти данные кешируются и получается ни как не отметить для конкректного пользователя, есть товар в корзине или в списке желаний. Данные уходят в кеш и у другого пользователя показывается, что товар типа в корзине. Так же еще в зависимости от группы пользователя некоторые товары показываются или скрываются. По этому я сделал так:
<?$APPLICATION->IncludeComponent("bitrix:catalog", "", array(
"USER_DATA" => $arUserData,
),
    false
);?>


в массиве $arUserData находятся данные о товарах добавленных в корзину, список желаний и группа пользователя.

На сколько я понимаю, id кеша собирается из данных этого массива.

И сейчас появились большие тормоза в каталоге. При первом заходе на страницу она грузится секунд 15 - 20, при последующем менее 1 сек. Но через некоторое время (1 - 5 минут) опять тоже самое.

настройки кеша каталога:
"CACHE_TYPE" => "A",
    "CACHE_TIME" => "36000000",
    "CACHE_FILTER" => "Y",
    "CACHE_GROUPS" => "Y",


подскажите правильный я использую подход? или может это все как-то по другому можно реализовать?
  • Вопрос задан
  • 677 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
в каталоге у каждого товара есть кнопка или ссылка купить - добавь class='product_ajax_id_товара'
на странице есть малая корзина
$mas_elem - сюда собираешь товары (их id) - которые добавлены в корзину
$obj_count=CUtil::PhpToJSObject($mas_elem); - здесь у тебя js массив

пробегаешься по этому массиву и делаешь с кнопками нужные действия
аналогично со списком желаний

вот и вся задача

PS - с компонентом catalog.section в принципе ничего делать при этом не нужно - только добавить к каждому товару данный класс)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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