跟踪Knockout.js订阅者

big*_*ave 3 javascript ajax knockout.js

我有一个存储在服务器上的大量实时数据层次结构.层次结构永远不会改变,但值会不断变化.在我的客户端,我将层次结构复制为淘汰模型,并使用重复的ajax调用更新它.

在任何时候,只有一小部分层次结构将显示在我的客户端中,所以我只想对当前显示的值进行ajax调用.

是否有一些"标准"方法可以计算当前订阅者的数量,或者更好地跟踪每个订阅者以测试其可见性?

谢谢!


感谢您的回复re getSubscriptions.Count().这给了我一个解决方案 - 获取ajax轮询功能,以便每次轮询时搜索用户的viewmodel.我真正想做的是允许每次订阅数量变为零时通知轮询功能,因此它可以启动和停止轮询 - 这比搜索每个查看模型更有效处理器时间.什么是完美的,如果有一个计算的observable作为主要observable的子,称为"subscriptionsCount()",然后轮询器(或任何其他人)可以订阅它.

我已经考虑另一种方式是包裹在计算观察到的一拉我的"价值" http://www.knockmeout.net/2011/06/lazy-loading-observable-in-knockoutjs.html.这提供了一种机制在需要该项时通知轮询器,但不解决在不再需要时通知轮询器的问题.

Ily*_*lya 15

有方法getSubscriptionsCount()observable

self.name = ko.observable("Mike");
//...
var numberOfSubscribers = self.name.getSubscriptionsCount();  
Run Code Online (Sandbox Code Playgroud)

JSFiddle DEMO