@FreeArcher
Senior 1С; php, JS Starter

Как обойти кеширование композита в Битрикс?

Приветствую.
В карточке товара я определяю город по ip пользователя.
Чтобы победить кеширование я реализовал этот код в component_epilog.php.

Но все равно чужой город кешируется. После второй перезагрузки страницы город встает какой нужно.
Я предполагаю, что так кеширует именно композитный режим?
Как его обойти, чтобы стопроцентно код выполнялся в обход кеша?

AddEventHandler('main', 'OnEndBufferContent', 'SetDeleveryInfo');
 ...

    $City = $_SESSION['RSLOCATION']['LOCATION']['CITY_NAME'];

        If (empty($City)) {
            $City = CRS_Location::GetCityName()['CITY_NAME'];
            if (!empty($City)) {
                $_SESSION['RSLOCATION']['LOCATION']['CITY_NAME'] = $City;
            }
        }

        if (empty($City )) {
            if (\Bitrix\Main\Loader::includeModule('olegpro.ipgeobase')) {
                $arIpGeo = \Olegpro\IpGeoBase\IpGeoBase::getInstance()->getRecord();
                $City = $arIpGeo['city'];
                if (!empty($City)) {
                    $_SESSION['RSLOCATION']['LOCATION']['CITY_NAME'] = $City;
                }
            }
        }
  • Вопрос задан
  • 818 просмотров
Решения вопроса 1
@freekirill
Пишу под Битрикс
g-rain-design.ru/blog/posts/bitrix-composite-cache есть статейка интересная, можно глянуть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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