knockout.js在填充observableArray时太慢

knockout.js is too slow in filling observableArray

本文关键字:observableArray 填充 js knockout      更新时间:2023-09-26

我创建了比较角度和击倒的测试:

    items = self.items();
    // ...
    self.items.valueHasMutated();
http://jsfiddle.net/imbolc/z7bkz/9/embedded/result/

这个测试正确吗?你知道提高KO灌装速度的方法吗?

我没有彻底比较不同测试之间的逻辑,但我知道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 ms 199 ms

敲除:109 ms 25 ms