Exist: 2500 объектов-объектов массива. Рендер метод взял 1347.783msнаблюдаемые против методов визуализации jsviews
I`ve пытался оптимизировать сроки с помощью метода $ .observable (массив) .refresh() и он принимает: 3382.213ms
What`s лучший способ обновить вид? Я думал, что метод refresh() влияет только на меняющиеся элементы, что мало.
Шаблон:
<script id="betTMPL" type="text/x-jsrender">
<div class="bet_group">
<div class="bet-title {{if hideGroup}}min{{/if}}" id="group_{{:groupID}}" data-gid="{{:groupID}}" data-gameid="{{:gameID}}">
<div class="groupName">{^{:groupName}}
<span id="kolG_{{:groupID}}" {{if !hideGroup}}style="display: none;"{{/if}}> ({{:betsLen}})</span>
{^{if allowMyMarkets}}
{^{if actionMyMarket}}
<span class="addToMarket" title="<?=__('Add')?>"></span>
{{else}}
<span class="addToMarket active" title="<?=__('Del')?>"></span>
{{/if}}
{{/if}}
</div>
</div>
<div class="bets" {{if hideGroup}}style="display: none"{{/if}}>
{^{for bets ~cols=cols ~mainGame=mainGame ~idd=idd ~gameID=gameID ~groupID=groupID}}
{{if !(#getIndex() % (~cols))}}
{{if #getIndex() != 0}}
</div>
{{/if}}
<div>
{{/if}}
{^{if #data}}
<div id="z_{{:T}}">
<span class="bet_type {{:spanBetClass}}">{^{:betName}}
<span class="koeff {{:classLight}}"
{{if ~mainGame}}mainGame="{{:~mainGame}}"{{/if}}
{{if DopName}}dopName="{{:DopName}}"{{/if}}
bl="{{:B}}"
u="{{:~idd}}"
idgamecfg="{{:~gameID}}"
v="{{:sobID}}"
g="{{:~groupID}}"
d="{{:P}}"
dn="upcoming_events"
pl="{{:Pl.Id}}"
data-type="{{:T}}"
data-coef="{{:C}}"
id="b_{{:newID}}"><i>{^{:CV}}</i></span>
</span>
</div>
{{else}}
<div> </div>
{{/if}}
{{if #getIndex() == #get("array").data.length - 1}}
</div>
{{/if}}
{{/for}}
</div>
</div>
</script>
Цените свой ответ. Я сделал скрипку, полностью отражающую мою проблему. Не могли бы вы посоветовать вам способ решить. Слияния и те же данные - Ссылка: 1779.328ms Merge: 6253.951ms https://jsfiddle.net/bc335zyx/2/ – user2879626
Спасибо за предоставление jsfiddle. Я расследую. К сожалению, оба метода move и скомпилированный подход View Model фактически не оптимизированы для массивов (я оговорился), поэтому блок {^} для повторного рендеринга для всего массива. Возможно, это возможно изменить в обновлении JsViews, но я не могу обещать. Работая над этим ... Я обновил свой ответ выше ... – BorisMoore
Хорошие новости - мне удалось выполнить работу по оптимизации, и она находится в последней версии: https://github.com/BorisMoore/jsviews/commit/91d5e6309d7b4d93c9d51117201cd42142429601 , Слияние в jsfiddle выше теперь занимает 271 мс. Я буду обновлять свой ответ соответственно – BorisMoore