如何管理哪些数据同步到Meteor客户端的缓存?

时间:2012-04-27 06:50:55

标签: meteor

我修改了排行榜示例以使用两个集合:

Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");

Players集合包含示例中定义的6个文档。

> db.players.count()
6

Tasks集合有48,000个文档。

> db.tasks.count()
48000

一旦打开浏览器,Node就会跳转到100%CPU,客户端无法看到任何任务记录。

Players.find().count()
6
Tasks.find().count()
0

我尝试定义查询条件,但这只适用于服务器,对客户端没有帮助。

Players.find({name:"Claude Shannon"}).count();
1
Tasks.find({tid:"t36254"}).count();
0

我猜测48,000个文档太多无法同步。这导致Node挂起100%CPU,客户端抛出这样的错误:http://i.imgur.com/zPcHO.png

如何阻止同步所有内容并仅从集合中检索特定文档?

1 个答案:

答案 0 :(得分:18)

Meteor的自动发布,将你的所有馆藏发布到客户端,令人印象深刻,让事情变得更快,但它有点像Rails脚手架功能 - 对于真正的应用程序不是很有用 - 它用于学习和原型设计。 / p>

默认情况下,Meteor会自动将集合中的每个文档发布到每个连接的客户端。要关闭此行为,请删除包:

$ meteor remove autopublish

然后,学习使用手动发布和订阅功能,它为您提供所需的控制:http://docs.meteor.com/#publishandsubscribe