knockout.js填充observableArray太慢了

时间:2013-05-13 11:20:27

标签: javascript knockout.js angularjs

我为比较角度和淘汰赛创建测试:

    items = self.items();
    // ...
    self.items.valueHasMutated();

http://jsfiddle.net/imbolc/z7bkz/9/embedded/result/

这个测试是否正确?你知道增加KO填充速度的方法吗?

1 个答案:

答案 0 :(得分:2)

我没有彻底比较您的不同测试之间的逻辑,但我知道Chrome处理文本节点的方式存在一些问题,如下所述:https://github.com/SteveSanderson/knockout/issues/793

如果您从内联KO模板中删除文本节点,那么您会看到Chrome中的性能大幅提升。

像:

<ul id="ko-list" data-bind="foreach: items"><li>ko: <span data-bind="text: val"></span></li></ul>

更新了示例:http://jsfiddle.net/rniemeyer/tsTmZ/

最新Chrome中的示例结果:

jquery:45 ms 74 ms

角度:171毫秒199毫秒

淘汰赛:109毫秒25毫秒