1

我有一个大小合适的数据网格(基本上是一个交互式表格),大约 600 行。

我注意到将 KO 绑定到这个网格实际上需要大量时间,尤其是。在数据绑定期间。在较旧的浏览器上情况更糟,处理器达到峰值几乎一分钟。

性能块的最大块似乎来自执行数据绑定的行,注意:这是初始数据绑定,因此许多对处理大型更新的回复似乎并不适用。

还使用映射插件将 json 对象动态转换为视图模型。然而,与数据绑定的行相比,执行映射本身的行似乎并没有占用太多时间。

不幸的是,由于要求,分页是不可能的。是否有关于优化更大视图模型和 KO 的一般提示/指针?

4

2 回答 2

1

我有一个类似的问题,并在 Knockout Google 组中发布。Michael Best 建议尝试一些自定义绑定

由于您正在进行编辑,因此他的淘汰表绑定对您不起作用。但是您可以尝试淘汰重复绑定。它应该比 Knockout 的原生 foreach 更快(以 HTML 中的一些额外复杂性为代价)。最后一个选项是创建您自己的绑定,一次性构建您的网格。理论上,在内存中构建整个网格并将其填充到 DOM 中将比以离散位修改 DOM 更快。

KoGrid 可能不是您想要的,但可能在源代码中嵌入了一些提示和技巧。

于 2013-07-10T03:20:20.107 回答
0

使用映射插件时的一个建议是只映射您需要的属性。将所有属性映射到大型数据集中的可观察对象可能是真正的性能杀手。

于 2013-06-11T04:56:18.790 回答