【发布时间】:2011-03-17 09:22:35
【问题描述】:
我需要在我编写的附加组件中对整个网页文档进行大量的 DOM 操作。我想尽量减少回流,所以我所有的操作只发生一次回流。删除 body 元素,进行操作然后再次插入它不是一种选择,因为这会重新评估所有 <script> 元素。目前我在操作之前将 body 的可见性设置为 'none' 并在之后恢复 display 的值。不过,我不确定这是否是解决此问题的最佳方法。
有没有更好的方法?当然,它可能是 Firefox 特定的代码。毕竟它是一个 Firefox 插件。
【问题讨论】:
-
你只是在添加东西,还是在做一堆修改?
-
我用一堆元素替换所有不是空格的#text节点:
foo bar baz-><x><y>foo</y> <y>bar</y> <y>baz</y></x>我这样做是为了得到每个单词的确切位置(在我操纵所有元素)。