更改属性时延迟渲染dom元素

Ale*_*lex 7 javascript performance

我一次遇到很多dom元素的属性时遇到了性能问题.似乎每次我更改属性时都会重新呈现dom元素.无论如何,我可以延迟元素的渲染,直到我的所有更新都发生了?在FF 3和3.5中似乎比IE 7和8慢得多,这与我的预期相反.

我正在做的一个例子如下.

var t;

for (var i = 0; i < tiles.length; i++) {
    t = tiles[i];
    t.width = '100';
    t.height = '100';
}
Run Code Online (Sandbox Code Playgroud)

问题是"瓷砖"中的项目数量最多可达100个dom元素.这是性能问题真正表现出来的地方.

CMS*_*CMS 6

同意@Crimson但我认为最好隐藏你正在更新的所有元素的父级,如果他们没有独家父级,请尝试创建一个.

这样只会发生两次回流,一次是隐藏瓷砖容器,另一次是完成元素操作后再次显示.

  • @David,我不认为能见度:隐藏;之所以会起作用,是因为更改可能会对所涉及元素占用的空间量产生影响。 (2认同)