我需要在浏览器中显示和操作包含多达 10,000 个简单单元格(例如 100 x 100)的网格。这些单元格基本上只是一个彩色矩形。操作包括使用 Javascript 更改单元格颜色,处理每个单元格上的点击等。使用每个单元格 1 个 div,和 1 个 div 将单元格组包装成一行,我基本上可以减少到 10,000 个 DOM 元素,但这仍然相当很多。我担心甚至更快的 DOM 函数的性能,例如 getElementById
。
最初的问题:如果我将所有必要的 DOM 元素引用存储在一个 Javascript 数组中(例如,一个 10,000 元素的数组,每个单元格一个元素)并在每个元素的基础上操作 CSS,这是否有一个祈祷与 DOM 有 200-500 个元素时一样快?
因此,我正在寻找有关如何更有效地显示这个 100 x 100 网格的建议。我考虑过使用 canvas
并使用 Javascript 绘制每个单元格,但我不确定这实际上会快多少,尤其是在编辑单元格样式时。我也不太倾向于使用 canvas
因为它不是完全交叉兼容的(阅读:@#%$ing IE)并且在某些时候我可能需要制作这个东西 IE-兼容。
你有什么想法?
最佳答案
参见 JavaScript data grid for millions of rows或者,简而言之,使用 SlickGrid - http://github.com/mleibman/slickgrid
关于html - 在浏览器中有效地表示大网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297626/