2013-06-12 11 views
0

Meteor.publish的回調函數中,我們返回遊標。那麼這是否意味着當我們在客戶端上進行訂閱時,只有最少量的數據被傳送到客戶端?Meteor.subscribe後,客戶端上加載了多少數據?

只有當我們在cursor.fetchcursor.forEach這樣的客戶端上執行某些操作時,集合數據纔會真正被推送到客戶端上?

謝謝!那是在你的Meteor.publish定義

回答

2

一切都將被髮送到客戶端:

e.g如果你有

Meteor.publish("rooms", function() { 
    return Rooms.find(); 
}); 

查詢Rooms.find()的全部結果發送到客戶端。 .fetch()只從光標中提取所有數據,這有助於停止循環所有不必要的數據(在內存中)。遊標的fetch/forEach不會影響從服務器獲取的訂閱和數據。

要控制客戶端的內容,您需要明確告知訂閱/發佈要發佈到客戶端的內容。一個很好的例子是Chat &流星文檔中的房間示例subscribe

+0

爲了弄清楚,在客戶端進行訂閱之後,整個'Rooms'集合被加載到客戶端的minimongo ? – Dave