禁用计算的可观察量

时间:2012-08-31 07:16:46

标签: knockout.js

我有一个问题是计算的observable是从地狱创建通知链(Ordo n ^ 2)。

我需要的是这个

Disable computed observable
Do stuff
Enable observable and notify subscribers (View)

发现了这个,但已经超过一年了,

http://www.knockmeout.net/2011/04/pausing-notifications-in-knockoutjs.html

我希望现在有一些解决方案吗?

编辑:显示问题的小提琴。 http://jsfiddle.net/8mxBA/

它非常接近真实的网站代码 尝试使用顶部复选框选择所有项目,它只会对canSave计算机进行两次调用,尝试取消选中它,它会对canSave计算机进行n次调用,并且由于canSave方法会对整个集合进行迭代,因此可能会变慢。

2 个答案:

答案 0 :(得分:1)

尝试油门选项('不是扩展器')。

comp = ko.computed(function () {
    return stuff;
}, this, {throttle: 1});

我认为节流扩展器将计算机包装在一个额外的计算中,因此效率较低。

答案 1 :(得分:0)

检查一下,这是throttle扩展程序的更新:http://knockoutjs.com/documentation/rateLimit-observable.html