首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何管理哪些数据被同步到Meteor客户端的缓存?

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

Stack Overflow用户
提问于 2012-04-27 14:50:55
回答 1查看 2.5K关注 0票数 6

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

代码语言:javascript
运行
复制
Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");

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

代码语言:javascript
运行
复制
> db.players.count()
6

Tasks集合有48,000个文档。

代码语言:javascript
运行
复制
> db.tasks.count()
48000

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

代码语言:javascript
运行
复制
Players.find().count()
6
Tasks.find().count()
0

我尝试定义查询条件,但这只在服务器上有效,在客户端没有帮助。

代码语言:javascript
运行
复制
Players.find({name:"Claude Shannon"}).count();
1
Tasks.find({tid:"t36254"}).count();
0

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

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

EN

回答 1

Stack Overflow用户

发布于 2012-04-27 19:19:32

Meteor的autopublish将你所有的集合发布给客户端,非常令人印象深刻,让事情运行得很快,但它有点像Rails的脚手架功能-对真正的应用程序来说不是很有用-它是为了学习和原型。

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

$ meteor删除自动发布

然后,学习如何使用手动的发布和订阅函数,这些函数为您提供了所需的控件:http://docs.meteor.com/#publishandsubscribe

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10346057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档