Выкючать в меню "CACHE_SELECTED_ITEMS" => "N" по умолчанию

Рейтинг: 26.0973  
На голосовании
Предложил Пользователь 16182 21.06.2014 13:34:03

Выкючать в меню "CACHE_SELECTED_ITEMS" => "N" по умолчанию

На сайтах где много страниц - кеш меню очень сильно разрастается, инодга на несколько гигабайт, что сильно тормозит работу сайта, так как на каждую страницу Битрикс зачем-то создает свой кеш меню.

Это оказывается можно выключить, если добавить скрытый недокументированный параметр
"CACHE_SELECTED_ITEMS" => "N"
<?$APPLICATION->IncludeComponent("bitrix:menu", "top", Array(
   "ROOT_MENU_TYPE" => "top",   // Тип меню для первого уровня
   "MENU_CACHE_TYPE" => "A",   // Тип кеширования
   "MENU_CACHE_TIME" => "3600",   // Время кеширования (сек.)
   "MENU_CACHE_USE_GROUPS" => "N",   // Учитывать права доступа
   ...
   "CACHE_SELECTED_ITEMS" => "N", // Не создавать кеш меню для каждой страницы
   ),
   false
);?>
В интернете аж одна строчка про этот параметр:
http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=5402

но из за незнания этих особенностей все сайты на Битрикс (даже самые простые) где много страниц - могут занимать Гигабайты (причем большую часть места занимает именно кеш).

Если добавить этот параметр - то тогда для меню создается всего один :!: файл кеша для всех страниц сайта.

Но если оставить как есть по умолчанию - то ваше меню будет разрастаться и распухать как на дрожжах, так как при каждом посещении новой страницы (при каждом разном $APPLICATION->GetCurPage() ) ваш кеш будет пухнуть.

Например, даже если у вас в меню всего 5 страниц, но зато 1000 товаров, то кеш меню создастся 1000 раз.

Зачем так мучать сервер? Выключите, пожалуйста, этот параметр по умолчанию, или добавьте константу которая будет эту штуку отключать, или хотя-бы вынесете в параметры меню, чтобы можно было отключать ее одним кликом мышки.

Рейтинг: 0  
Пользователь 114664 02.08.2016 13:36:07
еще не внедрили?
Рейтинг: 1  
Пользователь 129131 02.08.2016 20:57:24
еще не внедрили?
Какие-то у меня были проблемы из-за этого, не везде это полезно.
Рейтинг: 2  
Пользователь 129131 03.09.2016 09:31:43
Вспомнил, при этой включенной настройке подсвечивается только текущий активный пункт меню раздела каталога, в котором находимся, а разделы родители по отношению к текущему, не подсвечиваются,  ALLOW_MULTI_SELECT => Y не помогает.
Рейтинг: 0  
Пользователь 129131 03.09.2016 10:56:44
Меню разрастается бесконечно, пока не забьется полностью диск, вот у клиента с большим каталогом под 100К товаров это и случилось, на каждую страницу файл кэша меню размером 514Кб =  ~56Гб только папка с кэшем меню получилась, упс :)
Рейтинг: 0  
Пользователь 205362 14.03.2019 14:24:24
Вспомнил, при этой включенной настройке подсвечивается только текущий активный пункт меню раздела каталога, в котором находимся, а разделы родители по отношению к текущему, не подсвечиваются,  ALLOW_MULTI_SELECT => Y не помогает.
Для решения этого момента можно использовать параметр ADDITIONAL_LINKS, передавая в него все ссылки на дочерние разделы.
Для ссылок на файлы - работает без доработок.
Рейтинг: 0  
Пользователь 10983 09.06.2023 11:14:51
Ну вот, теперь после обновления 1С-Битрикс 23.300.0 проблема с кешированием меню.
Теперь наоборот требуется включать данный параметр "CACHE_SELECTED_ITEMS" => "Y"

Иначе (например левое меню), в разных разделах (по разным url) будет глючить и выводиться по первому кешу.

https://aspro.ru/kb/article/439/