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