2

我正在 Meteor 中构建一个依赖于数据库实时更新的应用程序。Meteor 列出示例的方式是将数据库调用置于模板调用之下。我发现在处理中等大小的数据集时,这变得不切实际。我正在尝试将请求移至服务器,并将结果传递回客户端。

我查看了有关 SA 的类似 问题,但没有立即找到答案。

这是我的服务器端功能:

    Meteor.methods({
    "getTest" : function() {
                   var res = Data.find({}, { sort : { time : -1 }, limit : 10 });
                   var r = res.fetch();
                   return (r);
                }
    });

和客户端:

    Template.matches._matches = function() {
        var res= {};
        Meteor.call("getTest", function (error, result) {
            res = result;
        });
        return res;
    }

我已经尝试了上述代码的变体 - 作为一个示例返回回调函数。据我所知,有一个回调使函数异步,所以它不能被调用 onload(同步)并且必须从客户端调用。

我想通过服务器端的所有数据库查询来减轻前端负载。这在 Meteor 中可行吗?

谢谢

4

1 回答 1

3

这样做的方法是使用订阅而不是远程方法调用。请参阅文档中的counts-by-room示例。因此,对于每个数据库调用,您都有一个仅存在于客户端的集合。然后,服务器使用set和决定集合中的记录unset

于 2013-02-20T11:08:37.010 回答