Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跟踪Knockout.js订户_Javascript_Ajax_Knockout.js - Fatal编程技术网

Javascript 跟踪Knockout.js订户

Javascript 跟踪Knockout.js订户,javascript,ajax,knockout.js,Javascript,Ajax,Knockout.js,我在服务器上存储了大量实时数据。层次结构从未改变,但值不断变化。在我的客户机上,我将层次结构复制为一个淘汰模型,并使用重复的ajax调用保持更新 在任何时候,只有一小部分层次结构会显示在我的客户机中,因此我只想对当前显示的值进行ajax调用 是否有一些“标准”的方法来计算一个可观察对象的当前订户数量,或者更好的是跟踪每个订户以测试其可见性 谢谢 感谢您回复re getSubscriptions.Count()。这给了我一个解决方案——让ajax轮询函数在viewmodel每次轮询时搜索订阅服务

我在服务器上存储了大量实时数据。层次结构从未改变,但值不断变化。在我的客户机上,我将层次结构复制为一个淘汰模型,并使用重复的ajax调用保持更新

在任何时候,只有一小部分层次结构会显示在我的客户机中,因此我只想对当前显示的值进行ajax调用

是否有一些“标准”的方法来计算一个可观察对象的当前订户数量,或者更好的是跟踪每个订户以测试其可见性

谢谢


感谢您回复re getSubscriptions.Count()。这给了我一个解决方案——让ajax轮询函数在viewmodel每次轮询时搜索订阅服务器。但我真正想做的是,允许轮询函数在每次订阅数变为零或从零变为零时得到通知,以便它可以启动和停止轮询-这将比每次搜索viewmodel更高效。完美的情况是,如果可以有一个计算的可观察对象作为主可观察对象的子对象,比如“subscriptionsCount()”,那么轮询者(或任何其他人)就可以订阅它


我考虑过的另一种方法是将我的“值”包装在一个计算出的可观测值中。。这提供了一种在项目需要时通知轮询器的机制,但无法解决在不再需要时通知轮询器的问题。

可观察的

self.name = ko.observable("Mike");
//...
var numberOfSubscribers = self.name.getSubscriptionsCount();  

太好了,谢谢!(如果可以的话,我会对你的评论投赞成票)。该功能是否记录在任何地方?(我想看看我还缺少什么。再次感谢。@user2062035