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

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...