数以千计的可观察对象对Knockout.js表单的浏览器性能的影响

时间:2019-06-07 15:27:38

标签: javascript performance data-binding knockout.js obs

我正在创建一个表单,其中用户将能够使用剔除js添加多行,每行将具有5 inputs,并且用户可能会添加数百行。

对于每个输入,我想使用observable array并使它的属性也可观察。

因此,对于某些用户而言,页面上可能会有大约5000个可观察的属性。

这种方法是否会引起性能问题?会降低浏览器的速度吗?如果有的话,有什么方法可以防止它发生。

1 个答案:

答案 0 :(得分:1)

我们正在使用带有observables的控件,它们的observableArrays可以在客户端保存20k多个记录,现在我们遇到了一些javascript / nockout墙。在使用5k的情况下,它仍然运行得很顺畅,但在很大程度上还取决于客户端的浏览器/硬件。

1个主要问题,同时更新了所有内容。数组是,如果您要迭代更改,它将挂起页面直到迭代结束。如果逻辑允许,您可以使用apply方法解决该问题。 Function.prototype.apply()

我想说的是,如果您100%确定不会超过5k,那就继续努力吧。但是说实话,如今您最好将大多数数据保留在服务器上,然后只检索那时所需的内容。