【问题标题】:Client side pagination is slow客户端分页很慢
【发布时间】:2016-04-19 18:34:22
【问题描述】:

对于 10000 行的记录集,只有几百行的窗口 通过开始行、停止行订阅,需要 10 多秒才能显示“就绪”?是否应该在移动窗口之前删除所有记录?为什么流星慢?

【问题讨论】:

  • Meteor.subscribe('querydata',Session.get("queryid"),Session.get("startrow"),Session.get("stoprow") ,{ onReady: function () { console.log("READY NOW"); Session.set("selected_query_data",Session.get("queryid")); console.log("find ALL start DATA done" + queryData.find({}).count( )); }, onError: function () { console.log("onError", arguments); } });

标签: meteor publish-subscribe


【解决方案1】:

首先,确保您只发布您真正需要的密钥,而不是您不需要的密钥。例如:

Meteor.publish('queryData',function(queryId,startRow,stopRow){
  return queryData.find({ ... query ...},{ fields: {name: 1, description: 1}});
});

如果您的文档很大,这一点尤其重要。

其次,查看浏览器检查器中的 websocket 流量,以了解您在发布中实际发送了多少数据。

第三,确保您的集合在您正在搜索的键上建立索引,这样您就不会进行集合扫描。

Meteor 通常速度很快,但简单的错误会让人感觉很慢。

【讨论】:

  • 只需避免 minimongo 工作,请求数组并将其推送到表引擎即可避免 minimongo I/O,速度很快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 2011-07-25
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多