微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 跟踪Knockout.js订阅者

我有一个存储在服务器上的大量实时数据层次结构.层次结构永远不会改变,但值会不断变化.在我的客户端,我将层次结构复制为淘汰模型,并使用重复的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();  

JSFiddle DEMO

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐