Цитата |
---|
Александр Козлов пишет: произвести действия над кэшем в result_modifier.php |
06.04.2013 23:23:29
- что такое кэширование? - как оно работает в битрикс? Вы уверены, что хорошо понимаете, о чем идет речь? |
|||
|
|
06.04.2013 23:27:28
Я уверен.
Вы, судя по вашим предложениям сбрасывать кэш компонента с помощью BXClearCache, да еще и в result_modifier.php, не очень. |
|
|
|
07.04.2013 00:00:24
я показал человеку, в какую сторону копать. И где искать ответа. Захочет - разберется. Или мне написать за него код?
Вы же не сообщили ничего полезного. Еще вопросы? |
|
|
|
07.04.2013 00:24:04
не кэшируйте в родительском компоненте результат работы второго компонента - убьете двух зайцев: добьетесь актуальных данных в выводе компонентов и не придется сбрасывать кэш сразу двух компонентов.
Шаблон основного компонента:
файл component_epilog.php шаблона основного компонента:
You must have chaos within you to give birth to a dancing star.
Friedrich Nietzsche |
|||||
|
|
07.04.2013 09:55:13
Идите нахуй битриксеры
|
|||
|
|
13.07.2020 10:24:40
Господа, давайте будем добрее. Знаете ответ - пишите ответ.
Человек спрашивал как очистить кеш компонента средствами API. Пример когда надо. Есть компонент списка фантиков. Кто-то в какой-то форме изменил один фантик или добавил новый. Но пока не помрет кеш компонента эти изменения или новый фантик в списке не появится. В данном случаи отсылать на документацию бесполезно. Прошло уже 7 лет, а в документацию так и не добавили метод: CBitrixComponent::clearComponentCache($componentName, $siteId = ""). Пример использования: CBitrixComponent::clearComponentCache('bitrix:news.list'). |
|
|
|
31.08.2021 06:30:54
Пробую этот метод для стороннего компонента - эффект нулевой. CBitrixComponent::clearComponentCache('vendor:component-name'). Кеш не сбрасывает. Помогает только полный сброс кеша, что очень нежелательно сайт крупный, кеш долго набирается - сайт тормозит PS Кеш на memcache |
|||
|
|
31.08.2021 08:42:55
Посмотрел код clearComponentCache для очистки вызывает метод с параметром "/s1/vendor/componentname"
$obCache->CleanDir("/s1/vendor/componentname", "cache"); а при получении валидного кеша в компоненте запрашивается "/s1/vendor/componentname/06f" получается метод CleanDir не чистит поддиректории, хотя должен ?! или я что-то не так делаю? для проверки вызвал $obCache = new CPHPCache; $obCache->CleanDir("/s1/vendor/componentname/06f", "cache"); кеш сбросился! |
|
|
|
27.10.2021 18:15:29
чтобы CBitrixComponent::clearComponentCache('vendor:component-name') работал для своих компонентов нужно при формировании кеша в компоненте принудительно указать cachePath = '/s1/vendor/component-name' в методе StartResultCache.
Если этого не сделать, то cachePath формируется автоматически и он становится /s1/vendor/component-name/xxx, где xxx - какие-то символы 06f, d80 и др. соответственно CBitrixComponent::clearComponentCache('vendor:component-name') не отработает для этого пути. |
||||
|
|
|||