循环创建元素时 ES5减少重绘重排的方法

代码也很简单就是循环创建N个li

但是这么循环创建会有问题 ,因为ul这个节点已经在html当中充当一个静态元素了,给这个静态元素不断循环放入li,就会形成10次的重绘重排,会影响性能要尽量减少重绘重排的次数

DOM提供了一个API,【document.createDocumentFragment】

从字面上就很好理解,create创建--document文档--Fragment碎片,创建文档碎片,

它就是一个碎片容器,以本案例为例,也就是说可以把循环出来的 li 交给这个碎片容器, 

这个碎片容器它是不占据DOM节点的结构,它只是一个容器,所以当你创建碎片容器的时候,它也不在你DOM节点里面

所以可以通过这个API声明一个文档碎片,然后每次循环创建 li 的时候就不要把 li 直接放给正在HTML文档流充当静态元素的 ul,那给谁呢?给这个文档碎片容器

这样这个文档碎片容器里面就存着循环创建的10个li,

最后在循环走完之后,再把这个存有10个li的文档碎片,给这个ul,就只会造成一次重绘重排

 

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值