取消订阅流星应用程序中的发布
Unsubscribe from publication in meteor app
我想知道是否有停止客户订阅的正确方法。
例如,我有 2 个页面,第一个我为客户订阅 users
发布,第二个我订阅 projects
发布。
当客户从用户页面转到项目页面时,他仍然订阅了用户,尽管他在项目页面上不需要它。
所以我的第一个问题是:它占用内存还是 CPU?当客户订阅越来越多的出版物时,当他从一条路线走到另一条路线时。
第二个:退订的正确方法是什么??
例如,当他转到项目页面时,取消订阅用户发布。
我看到的一些软件包可以做到这一点。例如 reactive-table
.
提前致谢!
通常,如果您想停止订阅,可以使用 Meteor.stop() 来完成。从指南中,关于如何 stop subscriptions:
if you call Meteor.subscribe() conditionally inside a reactive context (such as an autorun, or getMeteorData in React) or via this.subscribe() in a Blaze component, then Meteor’s reactive system will automatically call this.stop() for you at the appropriate time.
所以通常您不必停止订阅。它是自动完成的。
-对于您的第一个问题,是的,根据应用程序,它可能 CPU 密集,这就是为什么您要避免在聊天应用程序中使用多个 pub/sub,例如。
-对于第二个问题,在您的情况下,您需要做的是模板级订阅而不是路由器级订阅,以便仅将您需要的数据提供给您需要的模板。 See this example 了解如何使用 Flow Router 进行操作,这同样适用于其他路由器。
Template.blogPost.onCreated(function() {
var self = this;
self.autorun(function() {
var postId = FlowRouter.getParam('postId');
self.subscribe('singlePost', postId);
});
});
我想知道是否有停止客户订阅的正确方法。
例如,我有 2 个页面,第一个我为客户订阅 users
发布,第二个我订阅 projects
发布。
当客户从用户页面转到项目页面时,他仍然订阅了用户,尽管他在项目页面上不需要它。
所以我的第一个问题是:它占用内存还是 CPU?当客户订阅越来越多的出版物时,当他从一条路线走到另一条路线时。
第二个:退订的正确方法是什么?? 例如,当他转到项目页面时,取消订阅用户发布。
我看到的一些软件包可以做到这一点。例如 reactive-table
.
提前致谢!
通常,如果您想停止订阅,可以使用 Meteor.stop() 来完成。从指南中,关于如何 stop subscriptions:
if you call Meteor.subscribe() conditionally inside a reactive context (such as an autorun, or getMeteorData in React) or via this.subscribe() in a Blaze component, then Meteor’s reactive system will automatically call this.stop() for you at the appropriate time.
所以通常您不必停止订阅。它是自动完成的。
-对于您的第一个问题,是的,根据应用程序,它可能 CPU 密集,这就是为什么您要避免在聊天应用程序中使用多个 pub/sub,例如。
-对于第二个问题,在您的情况下,您需要做的是模板级订阅而不是路由器级订阅,以便仅将您需要的数据提供给您需要的模板。 See this example 了解如何使用 Flow Router 进行操作,这同样适用于其他路由器。
Template.blogPost.onCreated(function() {
var self = this;
self.autorun(function() {
var postId = FlowRouter.getParam('postId');
self.subscribe('singlePost', postId);
});
});