我有一个包含多个路径的多页面应用程序。每条路线的订阅都是使用“waitOn”实现的,并且工作正常。
我注意到当我导航到不同的页面时,会丢弃先前路由的订阅。到目前为止,没问题。
我在Router.configure级别实现了“waitOn”调用,以便所有页面都可以使用特定的订阅。
我的问题是:每次切换页面时,Iron Router都会为该订阅拨打新电话吗?我担心这会浪费服务器资源。
谢谢。
答案 0 :(得分:0)
是的,当您切换页面时,先前的订阅将被删除,稍后当您浏览该页面时,Meteor将重新订阅。
大气层中有一个社区包可以缓存订阅:https://github.com/meteorhacks/subs-manager
答案 1 :(得分:0)
所以为了扩展它,我做了更多的测试,看起来即使Iron Router尝试在每次切换页面时运行相同的Router.configure订阅,服务器似乎只运行一次发布功能(我放置了)一个console.log里面的发布函数看)。
我认为这是由他们的文档解释的:
如果你在反应计算中调用Meteor.subscribe,为 使用Tracker.autorun的示例,订阅将自动进行 计算失效或停止时取消;不是 必须调用内部自动运行中的订阅停止。 但是,如果运行函数的下一次迭代订阅了 相同的记录集(相同的名称和参数),Meteor足够聪明 跳过浪费的取消订阅/重新订阅。