Переполняется кеш меню

Модуль расширенного управления меню для битрикс

Март 13, 2019

Теги: Решение проблем, Ускорение

Решение проблемы переполнения кеша меню.

Типичный вызов компонента меню выглядит так:


<?$APPLICATION->IncludeComponent(

    
"bitrix:menu"
    
"footer"
    array(
        
"ROOT_MENU_TYPE" => "footer",
        
"MENU_CACHE_TYPE" => "A",
        
"MENU_CACHE_TIME" => "3600",
        
"MENU_CACHE_USE_GROUPS" => "Y",
        
"MENU_CACHE_GET_VARS" => array(),
        
"MAX_LEVEL" => "1",
        
"CHILD_MENU_TYPE" => "",
        
"USE_EXT" => "N",
        
"DELAY" => "N",
        
"ALLOW_MULTI_SELECT" => "N",
    ),
    
false
);

Если меню не зависит от авторизованности пользователя или привязки его к определенным группам пользователь, следует установить параметр:


"MENU_CACHE_USE_GROUPS" => "N",

Если в меню не выделяется текущий пункт, то следует установить данный параметр в "N", при этом кеш не будет привязан к текущей странице, в противном случае кеш будет создаваться для каждого url, даже если выделенный пункт для большинства страниц один и тот же:


"CACHE_SELECTED_ITEMS" => "N",

Если установлен параметр "MENU_CACHE_USE_USERS", его также нужно установить в "N", его стоит устанавливать в "Y" только если меню зависит от конкретного пользователя, правда в этом случае вообще встает вопрос целесообразности кеширования меню:


"MENU_CACHE_USE_USERS" => "N",

Если меню не зависит от параметров url, то следует установить:


"MENU_CACHE_GET_VARS" => array(),

← Переход к списку