MeteorJS 订阅机制
MeteorJS subscription mechanism
我对 meteor 中的 subscription/publication 有疑问。
当您在 meteor 中订阅发布时,客户端数据库是更新的还是服务器数据库的某一时刻的副本?
事实上,Meteor 会在订阅后更新本地数据库,还是只是服务器数据库在 T 时刻的图像,其中 T 是订阅时刻?我可以在客户端调用 Collection.find() 时获取最后的数据吗?
快速回答是,只要您的订阅仍然有效,Meteor 就会根据您在 publish() 方法中定义的规则使客户端与服务器保持同步。它不是时间 T 的副本,它从时间 T 开始,并随着服务器集合的变化而被修改。
例如:
/server/publish/people.js:
Meteor.publish('people', function() {
return People.find();
}
/client/app.js:
Meteor.subscribe('people');
publish() 的 'People.find()' 将受到监视,对查询的任何更改都将在客户端上复制。如果您在客户端有响应式查询(例如模板助手中的People.find()),这些查询将自动重新执行并更新模板(参见Tracker)。
很好的参考给你:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/
我对 meteor 中的 subscription/publication 有疑问。
当您在 meteor 中订阅发布时,客户端数据库是更新的还是服务器数据库的某一时刻的副本?
事实上,Meteor 会在订阅后更新本地数据库,还是只是服务器数据库在 T 时刻的图像,其中 T 是订阅时刻?我可以在客户端调用 Collection.find() 时获取最后的数据吗?
快速回答是,只要您的订阅仍然有效,Meteor 就会根据您在 publish() 方法中定义的规则使客户端与服务器保持同步。它不是时间 T 的副本,它从时间 T 开始,并随着服务器集合的变化而被修改。
例如:
/server/publish/people.js:
Meteor.publish('people', function() {
return People.find();
}
/client/app.js:
Meteor.subscribe('people');
publish() 的 'People.find()' 将受到监视,对查询的任何更改都将在客户端上复制。如果您在客户端有响应式查询(例如模板助手中的People.find()),这些查询将自动重新执行并更新模板(参见Tracker)。
很好的参考给你:https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/