我正在使用大型表格在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