2016-01-01 137 views
0

我想知道流星訂閱呼叫是否會覆蓋以前的同一個收藏訂閱?流星訂閱覆蓋舊訂閱嗎?

E.g.如果我有分頁和使用類似的東西:

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

並調用: Meteor.subscribe( '任務',0,10);

,然後前進到預訂

Meteor.subscribe( '任務',10,10)的下一個頁面;

...流星是否保留內存中的前10個結果或刪除舊內容?

我的最終目標是爲用戶提供選擇的用戶手動訂閱供以後脫機使用整個文件,我擔心這種做法將與我在線使用動態訂閱干擾。

回答

2

一旦你開始Meteor.subscribe訂閱,它將保持活動狀態,直到它的手動停止或用戶斷開連接(關閉瀏覽器等)。

因此短期回答你的問題是:沒有,訂閱都將主動和任何重複的文件將被合併。

但是,這可能不是您想要的,因爲除非您清理訂閱,否則它們仍將保留。動態修改訂閱參數的常見解決方案是使用autorun。這裏有一個模板級autorun,我們基於一對會話變量的認購tasks的例子:

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); 
    }); 
}; 

基於其無功輸入的autorun將智能啓動和停止以前的訂閱。

對於流星分頁上更多的細節,我建議你閱讀this post

+0

我有類似的問題,我在這裏張貼了我的問題:http://stackoverflow.com/questions/42073785/update-subscription-to-meteor-publication也許有人可以去看看。謝謝 – SoS