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要求。 –