Какой способ с FENOM быстрей? циклы или снипеты?
Друзья, начал изучать FENOM, шаблоны в файлах и тд, понимаю и реально быстрей, видел сравнение парсера таблицу, что при большом количестве парсер FENOM все равно быстрей, пусть и немного, но не могу понять одного, быстрей через снипет, или напрямую быстрей через foreach?
Как быстрей, так
Или так
И есть еще такой вариант
Как быстрей, так
[[getImageList?
&docid=`[[+id]]`
&tvname=`address`
&tpl=`tpl.address`
]]
Или так{'!getImageList' | snippet : [
'tpl' => 'tpl.addressl',
'tvname' => 'address',
'docid' => $id,
]}
Или так
{set $address = json_decode($id | resource : 'address', true)}
{if $address}
{foreach $address as $item}
{$item.title}
{/foreach}
{/if}
Но через foreach я так понимаю есть один минус, нет работы с кешем как в снипете.И есть еще такой вариант
{set $items = $_modx->runSnippet('!pdoMenuFenom', [
'parents' => 0,
'displayStart' => true,
'toArray' => true,
])}
{foreach $items as $item}
{set $item['level'] = 1}
{$_modx->getChunk('@FILE chunks/menu/topMenu.tpl', ['item'=>$item])}
{/foreach}
Комментарии: 3
В данном примере интереснее 3-й вариант, т.к. нет лишних чанков, вызовов сниппетов, он читабелен сразу. Думаю и работает он быстрее.
Но если бы в чанке tpl.addressl был слоооооожный, медленный код, то интереснее было бы вызывать кешированный сниппет.
Но если бы в чанке tpl.addressl был слоооооожный, медленный код, то интереснее было бы вызывать кешированный сниппет.
3-й не кешируется преобразуется в чистый php — думаю быстрый, 2-й не помню вроде для сниппетов работало отключение кеша через "!", хотя не факт. 1-й как только на сформированной странице присутствует "[[" это увеличивает время парсинга в несколько раз и не важно плейсхолдер это, сниппет или кусок js кода. Так что я за 3-й.
При желании закешировать можно всё.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.