Не успел я дописать. Дочитайте коммент. Почитайте по ссылке и в блоге...
Есть проблема с ЧПУ умного фильтра. Голосуйте за
14.12.2017 15:10:03
Не успел я дописать. Дочитайте коммент. Почитайте по ссылке и в блоге...
Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|
|
|
14.12.2017 18:46:41
template.php кешируеться и точка, то есть он выполняеться один раз и все. Следственно Ваш код с комментариями должен быть в другом файле.
Вариантов валом например component_epilog.php. Да, он выполняеться после шаблона, но всегда. Если ваш виджет не может идти после страницы, и должен быть в самой странице. То например в component_epilog.php может быть json с комментами. А ваш JS рендерит виджет на основе этого json. Но это не индексируеться, а желательно комменты индексировать с микроразметкой Например, Вы можете в template.php использовать свой тег свободной формулировки например "<mycomments/>" или "%MY_COMMENTS%". Желательно что-то невидимое в случае сбоя. и заключить вызов самого компонента в ob_start(); ob_get_clean(); конструкцию с последующим str_replace("%MY_COMMENTS%", "html моего виджета", ob_get_clean()). Не знаю на сколько это канонично, на производительности не заметно и утечек памяти нету. ajax после загрузки страницы считаеться нормальным, но мне не нравиться это решение, так как таких динамических областей бывает дофига, миникорзина, сравнение товаров, голосовалки, избранное и тд. А когда это множество виджетов собираеш в некую единую красивую и оптимизированную систему, то уже пишеш свой фреймверк, а там уже и до angular не далеко. Плюс это все таки нагрузка на пхп, а не nginx статика. Смысла я в этом вообще не вижу. Но все же это считаеться нормальным... И все же выборку комментов желательно кешировать (или автокешировать в терминалогии битрикса). Что бы был сброс кеша при изменениях в таблице. И снова рекомендую использовать встроенные orm, он имеет свой функционал кеширования выборок из таблицы со сбросом при добавлении, обновлении и удалении --- Не понятно как предлогаеться применить отложенные функции, ведь в \CBitrixComponentTemplate нету метода ShowViewContent. Из кешируемого компонента можно только захватить вывод через $this->SetViewTarget('MyComponentOutput'); ?>My html code <? $this->EndViewTarget(); и например в component_epilog.php этот вывод получить $APPLICATION->GetViewContent('MyComponentOutput'); Не вижу практического применения фишки.
|
|||
|
|
14.12.2017 23:13:46
Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|||||
|
|
14.12.2017 23:26:10
Кстати, решение вполне рабочее. Где то тут было обсуждение - на этом "принципе" html минимизировали перед выводом
Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|
|
|
15.12.2017 00:05:40
Суть не в этом , а в том, что серьезных тормозов это не добавляет - убрать все лишние символы это тяжелее чем один str_replace.
Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|
|
|
15.12.2017 01:02:50
Можно воспользоваться способом 2 из
|
|
|
|
16.12.2017 12:00:18
Робот всё равно заходит раз там в какой-то период для него быстрое отображение не суть уж слишком важно.
|
||||
|
|
|||