在Meteor.publish
的回调函数内部,我们返回游标。那么这是否意味着当我们在客户端进行订阅时,只有最少量的数据被传输到客户端?
只有当我们在cursor.fetch
或cursor.forEach
等客户端上执行某些操作时才会将集合数据实际推送到客户端?
谢谢!
答案 0 :(得分:2)
Meteor.publish
中定义的所有内容都将发送给客户:
例如,如果你有
Meteor.publish("rooms", function() {
return Rooms.find();
});
查询Rooms.find()
的整个结果将发送给客户端。 .fetch()
仅从游标中获取所有数据,这有助于停止循环遍历所有不必要的数据(在内存中)。游标的fetch / forEach不会影响从服务器获得的订阅和数据。
要控制客户端的内容,您需要明确告知订阅/发布要发布到客户端的内容。关于如何做到这一点的一个很好的例子是Chat& amp; subscribe
下的流星文档中的房间示例