我构建了一个响应式论坛演示,在移动设备上呈现主题列表。更新集合时没有响应。我认为原因是慢慢查询。
我的测试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
是否有可能改善它? :)
答案 0 :(得分:0)
您是否在循环的每次迭代中进行DOM插入?创建document fragment更容易,将所有内容附加到其中,然后在循环结束时将片段附加到DOM中。 逻辑保持几乎相同,但浏览器必须在最后重新绘制一次页面,而不是每次迭代。