我正在使用大型表格在Web应用程序的页面上工作。在某些情况下,可以使用12列和多达300行。我很难让表格在Internet Explorer中快速呈现。我复制我的困难在此位的测试代码:Internet Explorer缓慢渲染通过JavaScript生成的表格
上英特尔四核Q8200 4GB内存与IE9的一些基准测试:
50行,12列:432ms
100行, 12列:1023ms
200行,12列:2701ms
400行,12列:8107ms
800行,12列:24619ms
指数级差。
我设法挖掘了一些代码,这些代码在Internet Explorer中显示的速度相当快,但由于我使用了mustache.js模板来呈现单元格和行(保留所有HTML标记超出我的JavaScript),我不能够使用这些DOM方法:
基准测试结果:
50行,12列:仅为37微秒
100行,12列:72ms的
200行,12列:146ms
4 00行,12列:324ms
800行,12列:566ms
我无法构造块表块像在第二示例中,由于与客户端模板我需要注入HTML的串由胡子回来。如果你开始粘贴.innerHTML的内容,那么表演坦克会再次出现。
任何人都可以推荐一种方法来建立一个更高效的方式与客户端模板的使用兼容吗?
分页是处理此问题的一种方法,但我想自己解决问题。
任何建议非常感谢!
我认为这是DOM遍历,你在循环的每一次迭代中做的事情,然后是DOM操作12次,这是在杀死它。尽可能少地触摸DOM。做任何可以处理的东西,然后将其添加到DOM。 – 2012-02-22 06:45:22