Мне было интересно, перезаписывает ли вызов подписки Meteor предыдущие подписки для той же коллекции?

Например. Если у меня есть разбивка на страницы и я использую что-то вроде:

Meteor.subscribe ('tasks', start, count);

и звоните: Meteor.subscribe ('задачи', 0,10);

, а затем перейти на следующую страницу, которая подписывается на

Meteor.subscribe ('tasks', 10,10);

... сохраняет ли метеор первые 10 результатов в памяти или удаляет старое содержимое?

Моя конечная цель - предоставить пользователю возможность вручную подписаться на все документы для последующего использования в автономном режиме, и я беспокоюсь, что такая практика помешает моим динамическим подпискам для использования в Интернете.

Chris

Ответов: 1

Ответы (1)

После того, как вы начнете подписку с Meteor.subscribe, она будет оставаться активной до тех пор, пока не будет остановлена ​​вручную или пока пользователь не отключится (не закроет браузер и т. Д.).

Итак, краткий ответ на ваш вопрос: нет, все подписки будут активны, а любые повторяющиеся документы будут объединены.

Это может быть не то, что вам нужно, потому что, если вы не очистите подписки, они останутся активными. Распространенным решением для динамического изменения параметров подписки является использование автозапуска . Вот пример уровня шаблона автозапуск, где мы подписываемся на задачи на основе пары переменных сеанса:

Template.tasks.created = function () {
  var self = this;
  this.autorun(function () {
    var start = Session.get('paginationStart');
    var end = Session.get('paginationEnd');
    self.subscribe('tasks', start, end);
  });
};

Автозапуск будет интеллектуально запускать и останавливать предыдущую подписку на основе ее реактивных входов.

Для получения более подробной информации о разбивке на страницы в метеоре, я бы рекомендовал прочитать этот пост.

2022 WebDevInsider