Knockout.js性能-有多少可观察性
Knockout.js performance - how many observables?
我是Knockout.js的新手,已经非常喜欢它了。
假设我正在实现web博客,并希望使用Knockout.js添加/编辑/删除博客文章评论。为此,我定义了主题、文本和标签的Comment视图模型(在我的实际应用程序中,我需要更多的字段,如10到20)。
在消息被用户编辑并发布到服务器后,我想在屏幕上用最新的值(包括来自服务器的值,比如时间戳)刷新它。似乎我需要为每个列出的字段提供可观察的(而不仅仅是简单的)属性,否则回发后这些值将不会在用户屏幕上刷新。
现在,如果我每个评论有20个可观测值,那么有50个?100?屏幕上的评论,那么它会大大降低浏览器的速度吗?移动设备呢?如果是这样的话,还有其他方法可以实现我想要的吗?
另一种可能的选择是只对正在编辑的注释使用视图模型。在这种情况下,我需要以某种方式从html元素中"解除绑定"其他视图模型——例如,删除它并再次渲染。但在这里,我看不到一个好的解决方案。
有趣的问题。
简短而简单的答案是否定的。
浏览器性能并不是一个真正的问题,除非您正在专门开发一个已知或预计会影响性能的应用程序。
浏览器经过精心设计,可以处理大量数据。无论是从服务器下载新数据,还是渲染DOM元素。我认为浏览器可以处理1000多条评论(这是一个有根据的猜测)。
看看谷歌的应用程序(比如日历),它们往往会处理大量的数据。
这个用例场景听起来像是映射插件的完美匹配:
// Every time data is received from the server:
ko.mapping.fromJS(data, viewModel);
如果你遇到性能问题,Viewmodel插件声称速度快了好几倍,专门用于从更新的模型更新视图模型的任务。
ko.viewmodel.updateFromModel(viewmodel, updatedModel);
相关文章:
- knockoutjs可观察数组
- 多次发射多个可观察器的问题
- 无法在关闭弹出窗口时传递可观察的数据
- 如何收集Knockout可观察性以放入JSON
- 在rxjs中巧妙的蒸汽可观察合并
- 在隐藏值上调用 jQuery .trigger('change') 会破坏与 KNOCKOUT 相关的可观察性
- Knockout.js性能-有多少可观察性
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- Knockout.js:在可选定义的值上计算可观察性
- 如何使用ES6在Ember中声明可观察性或计算属性
- RXJS5 - 按每个对象包含的可观察性过滤对象数组
- Angular2 Http 请求返回没有映射方法的可观察性
- 在数据绑定表达式中,何时使用或不使用带可观察性的括号
- 在knockoutjs中计算的可观察性;更改时不更新
- 如何增加knockout.js的可观察性
- 如何通过多个$.ajax调用实现异步计算可观察性
- 敲除绑定顺序/不带可观察性
- Rxjs如何知道可观察对象有多少订阅者
- knockoutjs:计算级联数组(复杂视图模型)中的可观察性和this指针
- 使用计算的可观察性的对象范围