【问题标题】:Meteor load static data once for several templatesMeteor 为多个模板加载一次静态数据
【发布时间】:2016-02-04 13:34:59
【问题描述】:
我正在使用流星和 FlowRouter。我有一个国家行政区划的集合,数据大约是2000个文件。我在几条路线中读取了这些数据,所以现在我每次访问使用这些数据的路线之一时都订阅同一个集合。
这会导致性能下降和资源浪费。鉴于此集合不会更改,是否有任何方法可以一次性加载或订阅此数据并使其可用于整个应用或特定路由?
也许将数据保存在 settings.json 中并将其作为对象提供会更好?
提前感谢您的帮助。
【问题讨论】:
标签:
performance
meteor
static
publish-subscribe
flow-router
【解决方案2】:
您在路由之外进行的任何订阅都将在全局范围内,这意味着来自该订阅的数据在任何地方都可用。您需要做的就是在您站点的根布局文件中设置订阅,然后该数据将始终保存在您本地的 minimongo 存储中。
Todo app example here 中的待办事项列表集合就是一个示例,这是该示例中的代码:
Tasks = new Mongo.Collection("tasks");
if (Meteor.isServer) {
// This code only runs on the server
Meteor.publish("tasks", function () {
return Tasks.find();
});
}
if (Meteor.isClient) {
// This code only runs on the client
Meteor.subscribe("tasks");
然后您可以像往常一样查询该本地数据。