2014-09-25 81 views
1

我想在弹出窗口中创建大量的行以显示我的数据使用for循环,我使用文本字符串来创建和追加div,但是我发现document.createElement是高性能的并且使用那增加了性能为20%,但是由于我填充了1000行,所以创建元素的时间为document.createElement的时间非常长。有没有什么办法通过创建元素来提高性能,并通过多次实例来提高性能,对此有任何建议将不胜感激“document.createElement”性能

+0

重要的是,您不要触发文档重排:http://wilsonpage.co.uk/preventing-layout-thrashing/ – jantimon 2014-09-25 08:56:46

+0

您是否尝试过使用documentFragment? – dfsq 2014-09-25 09:01:07

回答

2

一旦你创建了一个元素,你可以使用Element.cloneNode()来复制它。它需要与document.createElement()相同的时间,但有一个优点:如果您已经在元素上设置了多个属性或childNodes/innerHTML,则可以使用一个调用复制这些属性:Element.cloneNode(true)

大多数时间需要插入新创建的元素,因此插入每个新元素都很慢。更快的方法是创建一个documentFragment,将所有新元素附加到需要的结构中,然后将完整的片段添加到DOM。

相关问题