很多面试都会问到的问题,那么说起这两个概念,首先先了解一下,浏览器对一个页面对渲染过程。
了解URL的解析过程
1.用户输入URL地址,浏览器根据域名查找IP地址
2.浏览器向服务器发送HTTP请求
3.服务器接受请求,根据请求返回相应的HTML代码,返回给浏览器
4.浏览器接受到服务器的相应结果,对页面做解析渲染
浏览器的解析过程
1,根据服务器返回的html编码进行解析,构建相应的dom树
2,加载css 样式,构造css样式表
3,dom树和样式表结合形成render tree
4,布局绘制,形成页面
重绘与回流
重绘:当页面元素的颜色背景等CSS样式发生改变,重新构造新外观,不会影响页面布局的过程就叫做重绘。
回流:当页面元素的大小,布局等发生改变,浏览器会重新渲染页面,这就被称作为回流回流可以理解为需要重新计算的dom,对整个浏览器的开销是非常大的,所以一般不建议采用这种方式,而是推荐通过添加类或者显示:无等方式来重新设置CSS样式。
重构不一定引起回流,回流必定产生重构。