有没有办法在繁重的DOM操作期间暂停重排?

pan*_*nzi 5 firefox dom reflow

我需要在我编写的附加组件中对整个网页文档进行大量的DOM操作.我想尽量减少回流,因此我的所有操作只会发生一次回流.删除body元素,执行操作然后再次插入它不是一个选项,因为这会重新评估所有<script>元素.目前我'none'在操作之前设置了主体的可见性并恢复了显示后的值.不过,我不确定这是否是解决这个问题的最佳方法.

有没有更好的办法?当然它可能是Firefox特定的代码.毕竟它是一个Firefox附加组件.

Dav*_*ron 1

Gecko 实际上非常擅长自行抑制不必要的修改(即,您可能最好不要弄乱它),除非在您所做的许多修改之间,您还请求需要布局的信息是最新的(例如元素位置或大小、getComputedStyle 等)