我有一个存储在服务器上的大量实时数据层次结构.层次结构永远不会改变,但值会不断变化.在我的客户端,我将层次结构复制为淘汰模型,并使用重复的ajax调用更新它.
在任何时候,只有一小部分层次结构将显示在我的客户端中,所以我只想对当前显示的值进行ajax调用.
是否有一些“标准”方法可以计算当前订阅者的数量,或者更好地跟踪每个订阅者以测试其可见性?
谢谢!
感谢您的回复re getSubscriptions.Count().这给了我一个解决方案 – 获取ajax轮询功能,以便每次轮询时搜索用户的viewmodel.我真正想做的是允许每次订阅数量变为零时通知轮询功能,因此它可以启动和停止轮询 – 这比搜索每个查看模型更有效处理器时间.什么是完美的,如果有一个计算的observable作为主要observable的子,称为“subscriptionsCount()”,然后轮询器(或任何其他人)可以订阅它.
我考虑的另一种方法是将我的’值’包装在计算的observable a la http://www.knockmeout.net/2011/06/lazy-loading-observable-in-knockoutjs.html中.这提供了一种机制,用于在需要项时通知轮询器,但是没有解决在轮询器通知时的问题.不再需要.
解决方法:
在observable上有方法getSubscriptionsCount()
self.name = ko.observable("Mike");
//...
var numberOfSubscribers = self.name.getSubscriptionsCount();