Meteor页面以某种方式加载,并且非常慢

时间:2015-06-21 18:56:32

标签: meteor

我有一个相当简单的页面,没有那么多的数据(总共约20k文件),而且它非常缓慢(完全加载大约需要30-60秒)。最让我感兴趣的是数据逐渐出现在页面上。这是为什么?为什么它这么慢?

这是页面.jade文件(它基本上只返回订单名称和订单的位置名称):

table(class="ui celled table")
thead
  tr
    th Order name
    th Position name
tbody
  each customerOrders
    tr
      td {{name}}
      td
    each customerOrderPositionModified
      tr
        td
        td #{name}

相应的.js文件为空。

router.js文件(对于Iron Router)是这样的:

this.route('/buyingList/:supplierUuid', {
data: function() {
  var supplierUuid = this.params.supplierUuid;
  var retOrd = [];
  _.each(orders.find({checked: true}, {name: 1, "customerOrderPosition.name": 1, "customerOrderPosition.quantity": 1, "customerOrderPosition.supplierUuid": 1 }).fetch(), function (order) {
    var ret = [];
    _.each(order.customerOrderPosition, function (pos) {
      var good = Goods.findOne({uuid: pos.goodUuid}, {name:1, supplierUuid:1});
      if (good) {
        if (good.supplierUuid == supplierUuid){
          var company = Companies.findOne({uuid: good.supplierUuid}, {name: 1, uuid: 1});
          var tt = {name: good.name, quantity: pos.quantity, companyName: (company ? company.name : "")};
          ret.push(tt);
        }
      }
    });
    if (ret.length > 0) {
      order.customerOrderPositionModified = ret;
      retOrd.push(order);
    }
  });
  return { customerOrders: retOrd };
},
name: 'buyingList'
});

收藏品的尺寸:

  • 订单:5k文件
  • 商品:10k文件
  • 公司:5k文件

已检查订单的数量(在第一次查询中返回)约为30。

我做错了什么?或流星应该是如此之慢?我对此表示怀疑。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

<强>摘要

如果一次发布超过几千个文档,流星可能会非常慢。

<强>建议

修改您的发布者以接受必要的参数,以便仅发布您所需的数据库子集,以满足您所在路径的UI要求。