HTML页面加载流程和解析流程
1.浏览器输入网址,DNS解析成ip地址
2.进行三次握手
3.浏览器发出请求,服务器进行响应,最后获取到html文件
4.浏览器开始解析html文件
5.浏览器从上至下解析文件代码,遇到link后向服务器进行数据请求,
6.之后在继续向下解析,载入部分html代码后配合css文件进行渲染
7.遇到图片之后,发出图片请求,不等反应又继续解析
8.等到图片响应之后,回过来重新渲染图片以及其之后的内容
9.遇到script标签则直接加载运行其中的内容
10.如果js中执行了一些dom操作,则对指定位置的所有内容重新进行渲染。
11.直到所有代码执行完毕,页面元素渲染完毕,网页才算加载完成。
重排与重绘
浏览器将html页面渲染完毕之后会生成Dom树和渲染树。
重排必定触发重绘
重绘不一定会触发重排,如:颜色变化
触发重排的操作:
- 添加和或者删除可见的DOM元素
- 元素的位置发生变化
- 元素的尺寸发生变化(包括:外边距,内边距,边框厚度,宽度,高度等属性发生改变)内容发生变化(例如:内容增加引起高度变化或者是图片被另外一个不同尺寸的图片所替换)
- 页面渲染器进行初始化的
- 浏览器窗口尺寸发生改变
1.https://www.cnblogs.com/ShuiNian/p/12098325.html
2.https://www.cnblogs.com/soyxiaobi/p/9963019.html