JS性能优化之⽂档⽚段createDocumentFragment
我们⽤原⽣JS进⾏开发时,经常会⽤到两种更新DOM节点的⽅法:innerHTML 和 appendChild() 。其中 innerHTML 会完全替换掉原先的节点内容,如果我们是想向元素追加⼦节点的话,那么 innerHTML 显然满⾜不了需求。转⽽我们就会想到 appendChild() ⽅法。appendChild⽅法接收的参数类型为单个的节点类型对象。因此当我们要添加多个⼦节点时,只能通过循环来实现。
例如:
我们都知道,对DOM的操作次数越多,性能消耗也就越⼤。像这样的循环添加节点,循环了多少次,就对DOM操作了多少次,性能消耗明显是不划算的。我们就会想,能否把要插⼊的节点进⾏打包,然后⼀次性添加呢?如果可以的话,那就只对DOM做了⼀次操作了。要实现打包,这就要⽤到我们的主⾓ createDocumentFragment。
DocumentFragments是DOM节点。它们不是主DOM树的⼀部分。通常的⽤例是创建⽂档⽚段,将元素附加到⽂档⽚段,然后将⽂档⽚段附加到DOM树。在DOM树中,⽂档⽚段被其所有的⼦元素所代替。
因为⽂档⽚段存在于内存中,并不在DOM树中,所以将⼦元素插⼊到⽂档⽚段时不会引起页⾯回流(对元素位置和⼏何上的计算)。因此,使⽤⽂档⽚段通常会带来更好的性能。
⽰例:创建主流web浏览器列表
HTML
原生js和js的区别JAVASCRIPT

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。