我正在使用knockout.js 2.0,当我做一个嵌套的foreach循环时,性能非常慢。主循环返回大约70条记录,70条json记录中的数组包含0-20个项目。所以我觉得这不是很多json数据。
我只是使用以下代码进行测试:
<table>
<tbody data-bind="foreach: Employees, visible: Employees().length > 0">
<tr>
<td class="centerdata" data-bind="text: ID"></td>
<td class="centerdata" data-bind="text: Name"></td>
<td>
<table>
<tbody data-bind="foreach: $data.Transactions">
<tr>
<td data-bind="text:TransDate"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
该页面加载大约需要20秒。 json中还有其他字段,但为了简单起见,我删除了它们。
谢谢, 马特
答案 0 :(得分:1)
我认为必须有其他事情发生在这里,马修。
我已经敲了一个快速的小提琴,使用你的标记与你提到的类似大小的虚拟数据,并且在Chrome中表现为约1秒。
http://jsfiddle.net/unklefolk/DCLaR/
是否存在重复计算的依赖观察值?如果是这样,请查看油门功能(http://knockoutjs.com/documentation/throttle-extender.html)