【问题标题】:Efficient pattern for updating a subscription limit argument更新订阅限制参数的有效模式
【发布时间】:2015-08-23 17:30:04
【问题描述】:

我正在使用 subs-manager,但这个问题的答案可能与那个 lib 无关。

我有一个带有单个 limit 参数的订阅。目前,当我拨打subs.subscribe 'subname', newLimit 时,会添加另一个订阅。

旧订阅仍然存在。我不希望 Meteor 花费时间维护旧的、低限订阅。我不想添加新订阅,而是想更新旧订阅的参数。做这个的最好方式是什么?

请注意,在订阅 'subname', 40 之前,我也不想完全删除例如 'subname', 20,因为我不希望 Meteor 做重新发送前 20 个文档的额外工作——我希望它只是发送文档 21 - 40。

【问题讨论】:

  • 嘿,您要实现的主要功能是分页还是无限滚动?
  • 如果您创建订阅到与以前相同的发布,它将被覆盖,并且将发送不同的数据,而不是全部。所以在 Tracker Meteor.publish('something', Session.get('count')) 中使用就可以了

标签: meteor meteor-publications


【解决方案1】:

您可以查看订阅的stop() 方法。根据the docs

stop() [取消] 订阅。这通常会导致服务器指示客户端从客户端的缓存中删除订阅的数据。

所以在我看来,你也许可以做到:

// globals or whatever
var previousSub, newSub;

// somewhere else
newSub = Meteor.subscribe('subname', newLimit, function () {
  if (previousSub)
    previousSub.stop();
  previousSub = newSub;
});

【讨论】:

  • 不得不将其更改为Meteor.subscribe b/c subs manager 返回的对象没有stop(),但您的解决方案有效,再次感谢。
猜你喜欢
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2020-06-03
  • 1970-01-01
相关资源
最近更新 更多