Есть ли в битриксе нормальный некостыльный способ сделать так, что бы счетчики просмотров были счетчиками просмотров, а не застывшими до сброса кеша значениями?
Можно через component_epilog.php и JS расставлять количество просмотров новостей, например
- это же бредятина полная, можно менее через жопу это делать?
Хваленый Сache Dependencies включен, но толку от него никакого. На сайте с посещаемостью около 5 тысяч в сутки висят нули и еденички в счетчиках просмотров. Если отключить кеширование - все норм с счетчиками, однако битрикс начинает при такой нагрузке генерировать страницы за > 5 секунд.
Приходит в голову только полностью снести кеш и с помощью CPhpCache (или как его там) вручную описывать кеширование, исключая из него show_counterы. С другой строны зачем писать еще код, когда и без того > 30мб кривого кода имеется в движке, в том числе и код кеширования новостей.
В общем как битриксовый кэш без костылей, мазахизма и написания кучи кода заставить не кешировать SHOW_COUNTER?
moveax3 пишет: На сайте с посещаемостью около 5 тысяч в сутки висят нули и еденички в счетчиках просмотров
Далеко ходить не надо - на сайте Ютюба миллионы, но почему-то счетчики увеличиваются только в определенные периоды времени. Ну или что помельче - Хабра.
Выход в вашем случае это снижение время кеша компонента до часа, раз в часх счетчики будут пересчитываться, никто и не обратит внимания.
Это и так сделано. Но может есть нормальных механизм все таки, позволяющий не кешировать произвольные свойства? В идеале что то типа:
Код
...
'EXCLUDE_FROM_CACHE' => array('SHOW_COUNTER', 'PROPERTY_COMMENTS_COUNTER') // один из параметров вызова компонента
...
- было бы просто отлично. Но такого нет, хотя тема кеширования мусолится уже несколько лет. Есть ведь не только счетчики просмотров, но и другие параметры, более критичные к вопросу своей актуальности.
Будет мало отличий тогда что вы дергаете - весь элемент (ситуация без кеша) или только свойства. Это не прихоть или косяк Битрикс - это удел технологии. Я ж вам даже другие сайты привел в пример.
Можно конечно отдельно запросом дергать просмотры, но это допиливать, штатно такого нет.