我在将项目渲染到正在构建的小部件时遇到问题。这就是我做事的方式:
- 从服务器获取 id 列表(没有实际数据,只有 id 和一些元数据)。
- 遍历项目列表(平均有 90-10 个项目)并使用 panel.items.add({html: 'some placeholder div with id'}) 添加项目
- 遍历 id 并对服务器进行异步调用以获取实际数据,并创建一些图形并将其呈现在适当的占位符 id 中。
步骤#3,令人惊讶的工作正常,即使它是加载最多数据的那个
第 1 步非常快,它只是使用单个服务器调用从服务器获取 id 列表
第 2 步是问题所在,这是一段代码以使其更清晰:
for (var i=0; i<meta.length; i++) {
var item = meta[i];
var divId = "graph" + meta.id + ..etc;
panel.items.add({
html: me.getDivHTML(divId, meta, ...);
});
}
这有两个问题,第一个在屏幕上渲染 90 个 div 需要一分钟多的时间,第二个,它不会增量渲染,它会等到它完成并立即显示所有 div。
我用铬。我究竟做错了什么?如何让这些 div 渲染得更快?