我的馆藏中收集了大约60个文件,名为Books。每次调用publishFunction
时,服务器都会从Books中返回10个随机文档。
之前,我正在刷新页面以使publishFunction
运行,并且一切正常(我在客户端上有10个随机文档),但刷新需要一段时间&它只是笨重。
现在,我正在从客户端调用Meteor.subscribe( 'publishFunction' )
来动态刷新订阅,执行我需要对onReady
回调中的新文档执行的操作。
但这是一个问题。
publishFunction
每次返回10个项目,保证(通过从服务器输出计数进行测试)。服务器正在按预期工作。
但是在客户端......我没有在客户端上获得这10个新项目。我将在第一次加载页面时获取它们(就像我之前所做的那样),但是每次从客户端调用publishFunction
时(我在调用Books._collection.remove({});
后清除旧的在客户端上显示的文档略少于10个(尽管publishFunction
同时返回了10个文档)。
它通常是这样的:10,7,5,3,2,0(后续刷新后返回的项目数)。
我在Books中没有很多文档,所以我的预感是Books._collection.remove({});
并未真正清除本地缓存。这可以解释逐渐减少的新书数量,因为Meteor仍然可以看到缓存的文档并且不会添加所有10个项目,因为其中一些区域已经存在。
如何在不更改路线的情况下真正清除本地缓存?
编辑:我尝试过来自Arunoda的子经理clear()
和reset()
,但它没有做到这一点......同样的行为。
答案 0 :(得分:0)
显然,stop()
方法也会重新订阅订阅,因此不需要进一步Meteor.subscribe()
。问题解决了。
文档(对我来说)真的不清楚。