在minimongo中查询性能

时间:2013-05-08 15:13:02

标签: javascript meteor

我构建了一个响应式论坛演示,在移动设备上呈现主题列表。更新集合时没有响应。我认为原因是慢慢查询。

我的测试html:

<template name="index">
  <h1 id="myTime"></h1>
  {{#each foo}}
  <h1>{{name}}</h1>
  {{/each}}
  <input id="t" type="text"></input>
  <button id="s">submit</button>
</template>

和js:

Template.index.foo = function () {
  return Foo.find({}).fetch();
};

Template.index.events({
  "click #s": function () {
    Foo.insert({name: $("#t").val()});
  }
});

Meteor.startup(function () {
  Meteor.setInterval(function () {
    $("#myTime").text((new Date()).getTime());
  }, 1);
});

当文档数量非常少时,代码工作得非常快。当文档数量大于300时,渲染将停止大约3s

是否有可能改善它? :)

1 个答案:

答案 0 :(得分:0)

您是否在循环的每次迭代中进行DOM插入?创建document fragment更容易,将所有内容附加到其中,然后在循环结束时将片段附加到DOM中。 逻辑保持几乎相同,但浏览器必须在最后重新绘制一次页面,而不是每次迭代。