JS中文档碎片的理解和使用

1、我们要明白当js操作dom时发生了什么?   

每次对dom的操作都会触发"重排"(重新渲染界面,发生重绘或回流),这严重影响到能耗,一般通常采取的做法是尽可能的减少dom操作来减少"重排"        

 

2、什么是文档碎片?  

 document.createDocumentFragment() 一个容器,用于暂时存放创建的dom元素     

 

3、文档碎片有什么用?    

将需要添加的大量元素时 ,先添加到文档碎片中,再将文档碎片添加到需要插入的位置,大大减少dom操作,提高性能(IE和火狐比较明显)
      

示例:往页面上放100个元素;
  

普通方式:(操作了100次dom) 

通过for循环,每次循环,添加一个dom元素

for(var i=100; i>0; i--){ 
    var elem = document.createElement('div');
    document.body.appendChild(elem);//放到body中
}

 

文档碎片:(操作1次dom) 

先将dom暂存在文档碎片中,然后在一次性操作dom        

var df = document.createDocumentFragment(); 
 for(var i=100; i>0; i--){ 
 var elem = document.createElement('div'); 
 df.appendChild(elem);
 } 
 //最后放入到页面上 
document.body.appendChild(df);

 

前端性能优化都是从一些细节地方做起的,如果不加以注意,后果很严重。

 

 


 

苟有恒 , 何必三更眠五更起

关注我,一起学习吧

鼓励一下,赐个赞 和 在看

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值