Помогите ускорить вывод
Здравствуйте,
Имею след. конструкцию:
Суть в следующем: на сайте больше 11 тыс товаров, код выше выводит пункт меню и его подпункты, которые являются категориями. На странице должны выводится только те категории, в которых есть товары относящиеся к текущей странице. В основном нагрузку, я так понял, несет вывод именно подкатегорий, потому что он там дважды полностью перебирает все имеющиеся товары. Но как сделать по другому до меня пока не дошло.
Имею след. конструкцию:
[[!If? &subject=`[[getProducts? &parents=`45` &returnIDs=`1` &depth=`1` &limit=`1` &tvFilters=`{"applicability:LIKE":"%[[*pagetitle]]%"}` &where=`{"template:=":5}`]]`
&operator=`empty`
&then=``
&else=`
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading-45" href="#collapse-45" data-toggle="collapse" data-parent="#accordion" aria-expanded="false" aria-controls="collapse-45">
<a class="collapsed sprites i-down" data-toggle="collapse" data-parent="#accordion" href="#collapse-45" aria-expanded="false" aria-controls="collapse-45"></a>
<a href="#collapse-45" data-toggle="collapse" data-parent="#accordion" aria-expanded="false" aria-controls="collapse-45" class="category-link">Безопасность (Аэрбеги)</a>
</div>
<div id="collapse-45" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading-45">
<div class="panel-body">
<ul class="sub-menu" style="border-left: dotted 1px #999;">
[[getProducts? &parents=`45` &toPlaceholder=`result` &tpl=`idparent` &depth=`1` &limit=`0` &tvFilters=`{"applicability:LIKE":"%[[*pagetitle]]%"}` &where=`{"template:=":5}`]]
[[getProducts?
&parents=`-1`
&resources=`0[[+result]]`
&tpl=`inner_sideTpl_GP`
&limit=`0`
&activeClass=`active`
&orderby=`{"pagetitle":"ASC"}`
]]
</ul>
</div>
</div>
</div>
`]]
Но она работает довольно медленно.Суть в следующем: на сайте больше 11 тыс товаров, код выше выводит пункт меню и его подпункты, которые являются категориями. На странице должны выводится только те категории, в которых есть товары относящиеся к текущей странице. В основном нагрузку, я так понял, несет вывод именно подкатегорий, потому что он там дважды полностью перебирает все имеющиеся товары. Но как сделать по другому до меня пока не дошло.
Комментарии: 2
[[getProducts? &parents=`45` &toPlaceholder=`result` &tpl=`idparent` &depth=`1` &limit=`0` &tvFilters=`{"applicability:LIKE":"%[[*pagetitle]]%"}` &where=`{"template:=":5}`]]
[[+result:notempty=`
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading-45" href="#collapse-45" data-toggle="collapse" data-parent="#accordion" aria-expanded="false" aria-controls="collapse-45">
<a class="collapsed sprites i-down" data-toggle="collapse" data-parent="#accordion" href="#collapse-45" aria-expanded="false" aria-controls="collapse-45"></a>
<a href="#collapse-45" data-toggle="collapse" data-parent="#accordion" aria-expanded="false" aria-controls="collapse-45" class="category-link">Безопасность (Аэрбеги)</a>
</div>
<div id="collapse-45" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading-45">
<div class="panel-body">
<ul class="sub-menu" style="border-left: dotted 1px #999;">
[[getProducts?
&parents=`-1`
&resources=`0[[+result]]`
&tpl=`inner_sideTpl_GP`
&limit=`0`
&activeClass=`active`
&orderby=`{"pagetitle":"ASC"}`
]]
</ul>
</div>
</div>
</div>
`]]
Но это только уберёт двойной вызов. Думаю, основная нагрузка всё-таки в чанке inner_sideTpl_GP…
в inner_sideTpl_GP там просто строчка с пунктом.
Спасибо что откликнулись
но не сильно увеличилась скорость с таким вызовом. Это получается один пункт такой, а таких пунктов 20, соответственно много времени занимает постройка такого меню…
Спасибо что откликнулись
но не сильно увеличилась скорость с таким вызовом. Это получается один пункт такой, а таких пунктов 20, соответственно много времени занимает постройка такого меню…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.