Рейтинг: 1.2265  
На голосовании
Предложил Пользователь 213454 26.09.2014 17:02:16

Дать возможность указывать в методе CBitrixComponent::clearComponentCache id кеша

Есть компонент A который выводит инфо об элементе инфоблока.
Вывод кешируется по ID элемента.
Иногда возникает необходимость сбросить кеш компонента A когда в компоненте B происходит какое-то событие.
К сожалению, CBitrixComponent::clearComponentCache сбрасывает кеш всего компонента.
А необходимо иметь возможность сбросить кеш только частично.
Например компонентом A закешировано 100 элементов.
Если я сброшу весь кеш компонента A через CBitrixComponent::clearComponentCache, то при следующих обращениях к компоненту, его кеш будет заполняться заново, даже если был изменен только один элемент. А если бы была возможность указывать ID кеша, то можно было бы сбросить только часть кеша компонента.
Рейтинг: 27.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 раз.

Зачем так мучать сервер? Выключите, пожалуйста, этот параметр по умолчанию, или добавьте константу которая будет эту штуку отключать, или хотя-бы вынесете в параметры меню, чтобы можно было отключать ее одним кликом мышки.
Рейтинг: 5.8305  
На голосовании
Предложил Пользователь 29412 21.04.2014 00:19:29

Галочка "Инвалидация кеша" для свойства типа дата время

Предлагаю реализовать функционал триггера для инвалидации тегированного кеша при наступлении даты/времени в свойстве типа дата/время с установленной галочкой "Инвалидация кеша"

Это необходимо для реализации всевозможных акций которые стартуют с определённого времени. Ну и ещё можно для чего либо использовать)
Рейтинг: 0.7134  
На голосовании
Предложил Пользователь 16182 04.04.2014 14:28:37

Дополнительный параметр CACHE_PARAM в параметрах компонентов

В стандартных компонентах к параметрам кеширования
CACHE_TYPE
CACHE_TIME
CACHE_GROUPS

добавить еще один параметр
CACHE_PARAM

в который можно записывать произвольные данные (число, строка) и будет изменяться идентификатор кеша компонента.
Для чего это можно использовать:
например, полностью устраивает компоннет bitrix:catalog.element, но нужно чтобы в зависимости от выбранного параметра на странице этот компонент (через логику result_modifier) выбирал или обрабатывал дополнительные данные.

Если компонент работает в режиме автокеширования, то какие бы мы параметры адресной строки не меняли, кеш будет один и тот-же, до тех пор пока мы не изменим входные параметры компонента.

Чтобы не создавать дополнительные параметры для этого случая, было бы удобно, чтобы был стандартный зарезервированный параметр CACHE_PARAM, в который можно поместить какие-то данные, и идентификатор кеша изменился бы.
Рейтинг: 18.76  
Ответил Жуков Евгений 04.04.2014 15:47:10
Если шаблон кастомизируется, все параметры, определенные в нем, попадают в идентификатор кеша.
Рейтинг: 0.5139  
На голосовании
Предложил Пользователь 16182 23.09.2013 10:11:41

Параметр "Не кешировать шаблон" в настройках компонента

Очень часто нужно подключить другой компонент в шаблоне одного компонента, и чтобы не городить костыли, удобно было бы иметь штатную возможность включать или выключать функционал кеширования шаблона.
Рейтинг: 28.1987  
На голосовании
Предложил Пользователь 109495 12.09.2013 09:44:36

Автоматическое удаление фирменных переменных Битрикс из GET-параметров

Идея

Сделать обертку над функцией GetCurPageParam, которая бы автоматически удаляла из генерируемого урла такие параметры, как show_page_exec_time, bitrix_include_areas, clear_cache, и прочие стандартные переменные Битрикс.

Кому и зачем нужно

Разработчик заходит на страницу и сбрасывает кеш через clear_cache. Весь кеш удаляется и генерируется заново. Если компоненты выводили ссылки с помощью GetCurPageParam, и там не прописано удаление переменной clear_cache, эта переменная попадает в ссылку и ее увидит каждый пользователь на сайте. Решения три
- сбрасывать кеш только в админке
- каждый раз писать, чтобы GetCurPageParam удаляла clear_cache
- сделать обертку над GetCurPageParam, которая будет это делать сама, и вызывать уже ее.
Рейтинг: 8.5685  
На голосовании
Предложил Пользователь 109495 10.07.2013 07:11:00

Дополнительные ключи кеша для всех компонентов битрикса

Часто кастомизация компонента (копирование в свое пространство имен и дальнейшая модификация) делается ради пары-тройки строк кода, которые добавляют в ключ кеша некоторые дополнительные параметры.
Предлагаю избавить нас всех от этих мучений.
Каким образом?
Предлагаю ввести в параметры компонента настройку, назовем ее CACHE_KEYS - множественное поле типа "строка". В ней разработчики будут, так же как в параметре FILTER_NAME, прописывать ИМЯ переменной. В самом компоненте значения будут вытаскиваться из этих переменных и передаваться в метод StartResultCache.
Избежать всеобщей модификации всех компонентов можно, если добавлять параметр CACHE_KEYS автоматически всегда, когда включено кеширование, а перед вызовом компонента добавлять значения в глобальные переменные, откуда и доставать внутри метода StartResultCache.
Рейтинг: 4.8526  
На голосовании
Предложил Пользователь 109495 04.04.2013 12:57:15

Дата последнего сброса кеша

В админке на странице очистки файлов кеша очень не хватает даты последнего сброса кеша.
Хотелось бы примерно так.
Рейтинг: 11.8296  
На голосовании
Предложил Пользователь 11898 22.02.2013 12:05:45

Упорядочить папки хранения кеша

Сейчас файлы кеша разбросаны в папки cache, cache_image, managed_cache, stack_cache. Следует их упорядочить в одну папку cache c подпапками.
Рейтинг: -6.9735  
На голосовании
Предложил Пользователь 94272 03.02.2013 16:38:29

Добавить к компонентам параметр "Значимые переменные"

Что бы кеш шаблона компонента формировался с учетом значений дополнительных переменных.
Например при смене города на сайте добавляется переменная $_REQUEST["CITY_CODE"], в зависимости от значений которой и выводился бы кеш шаблона компонента.