Я заметил, что когда я изменяю опубликованный курсор - НЕ данные, на которые указывает курсор, но весь курсор - Meteor отправит клиенту сообщение removed
все документы, которые не отображаются в новом курсоре. Что я имею в виду более технических терминах:Предотвращение удаления Meteor от данных MiniMongo, уже отправленных клиенту при публикации изменений
// client side
Tracker.autorun(function() {
var someReactiveVar = someReactiveVar.get();
Meteor.subscribe('myPublication', someReactiveVar);
}
...
// server side
Meteor.publish('myPublication', function() {
var someParameter = arguments[0];
return myCollection.find({ someAttribute: someParameter });
});
Теперь, когда someReactiveVar
изменения, все документы, которые были отправлены на стороне клиента MiniMongo myCollection
будут удалены (если они не являются частью нового курсора). В некоторых случаях это то, что вы захотите, но мой вопрос просто: могу ли я предотвратить это? Как?
Интересно! Мне нравятся оба решения, хотя я не совсем уверен, что второй будет работать: будет ли Метеор сначала удалять материал из старой подписки/публикации и переводить его? Это то, чего я хочу избежать! –
Зависит от вашего определения работы ;-). Да, возможно, он снова отправит все данные по проводам. Это может быть предпочтительнее управлять 'subHandles' для некоторых случаев использования. –
Ну, это (второе решение) не соответствует тому, что я искал - поскольку, строго говоря, это не мешает Метеору удалять уже отправленные документы. Он просто пересылает их. Вы могли бы указать на это в своем ответе. Но приятное объяснение, спасибо! –