博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重绘与回流
阅读量:6966 次
发布时间:2019-06-27

本文共 707 字,大约阅读时间需要 2 分钟。

重绘与回流

重绘

重新绘制,当js操作样式发生改变,并且没有影响布局的时候,只发送重绘。

var div = doucment.querySelector('div');div.style.background = 'red';//只改变了样式,只会重绘复制代码

回流

如果样式发生改变,并且影响到了页面布局浏览器会进行回流。

回流必定有一次重绘

div.style.width = "10px";//改变了页面的布局,会造成回流复制代码
  • 回流会重新绘制整个页面,非常消耗性能。
div.style.background = 'red';//重绘div.style.width = "10px";//回流+重绘div.style.height = "10px";//回流+重绘div.style.color = "red";//重绘复制代码
  • 比较聪明的浏览器不会每次触发回流就重新渲染一次,而是维护一个队列。
  • 当这个队列积累了10~20个的回流重绘时才真的进行一次回流。

强行让浏览器进行回流

  • 当我们需要使用offsetWidht/offsetHeight的时候,可以让浏览器自动进行一次回流。
  • 因为如果不回流来确定当前元素的宽高,获取的宽高就不准确了。
1、 添加或者删除可见的DOM元素;2、元素位置改变;3、元素尺寸改变——边距、填充、边框、宽度和高度4、内容改变——比如文本改变或者图片大小改变而引起的计算值宽度和高度改变;5、页面渲染初始化;6、浏览器窗口尺寸改变——resize事件发生时;复制代码

转载于:https://juejin.im/post/5a961f3d6fb9a063543c5d24

你可能感兴趣的文章
[Fluent NHibernate]第一个程序
查看>>
VS2015新建asp.net core站点
查看>>
CentOS7 firewall开启,开放端口操作
查看>>
CS 314 Principles of Programming Languages
查看>>
ios之sqllite3简单使用
查看>>
最长回文子串
查看>>
软件工程_第二次作业
查看>>
4.下单函数
查看>>
在windows下如何批量转换pvr,ccz为png或jpg
查看>>
FreeMarker之入门实例
查看>>
xml 创建文件
查看>>
「陶哲軒實分析」 習題 3.4.10
查看>>
redis的主从复制配置
查看>>
总结性博客作业
查看>>
分块题
查看>>
hibernate12--注解
查看>>
Struts10---拦截器
查看>>
上瘾:如何打造习惯养成中的产品(触发器篇)
查看>>
HDU3746 Cyclic Nacklace(KMP next数组的应用)
查看>>
谈谈Java-IO System对IO的三种支持
查看>>