Iron Router呼叫订阅多少次?

时间:2015-07-11 00:38:40

标签: meteor iron-router

我有一个包含多个路径的多页面应用程序。每条路线的订阅都是使用“waitOn”实现的,并且工作正常。

我注意到当我导航到不同的页面时,会丢弃先前路由的订阅。到目前为止,没问题。

我在Router.configure级别实现了“waitOn”调用,以便所有页面都可以使用特定的订阅。

我的问题是:每次切换页面时,Iron Router都会为该订阅拨打新电话吗?我担心这会浪费服务器资源。

谢谢。

2 个答案:

答案 0 :(得分:0)

是的,当您切换页面时,先前的订阅将被删除,稍后当您浏览该页面时,Meteor将重新订阅。

大气层中有一个社区包可以缓存订阅:https://github.com/meteorhacks/subs-manager

答案 1 :(得分:0)

所以为了扩展它,我做了更多的测试,看起来即使Iron Router尝试在每次切换页面时运行相同的Router.configure订阅,服务器似乎只运行一次发布功能(我放置了)一个console.log里面的发布函数看)。

我认为这是由他们的文档解释的:

  

如果你在反应计算中调用Meteor.subscribe,为   使用Tracker.autorun的示例,订阅将自动进行   计算失效或停止时取消;不是   必须调用内部自动运行中的订阅停止。   但是,如果运行函数的下一次迭代订阅了   相同的记录集(相同的名称和参数),Meteor足够聪明   跳过浪费的取消订阅/重新订阅。