0
我有一个相当简单的页面,没有太多数据(总共大约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文件(铁路由器)是这样的:
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.
我在做什么错?或流星应该是如此之慢?我对此表示怀疑。
感谢您的帮助。
是否所有这些文档都发布给客户端(是自动发布的)?如果每次发布超过几千个文档,流星可能会非常缓慢。 –
Autopublish已关闭,但所有这些文档都已发布,整个集合。那么,我应该向出版物添加参数,以便只发布相关文档? – Egor
绝对是。一般来说,您的目标应该是只发布您需要的数据库子集,以满足您所在路由的UI要求。 –