浏览器渲染页面过程(输入url后到出现页面)

1,通过dns解析url中域名到ip(比如查找www.baidu.com这个域名)

1.1 先查看浏览器是否有解析过该域名,是否还有它的缓存,浏览器的缓存时间2~10分钟左右,具体看dns解析生效的时间,找到有缓存的ip则返回,没有则进行下一步

1.2 浏览器向系统发起查询,系统向配置的dns服务器查询,如果找到则返回,如果没有进行下一步,下面就是dns服务器的接力

1.3首先向根dns服务器去查询(全球dns根服务器只有13台【1台在日本1台在澳大利亚2台在欧洲9台在美国】,还有其他镜像),根服务器会返回com所在的dns服务器的地址(这种顶级域名所在的dns解析服务器称为顶级dns解析服务器)

1.4再向com所在的顶级dns解析服务器发起查询,会返baidu.com所在的dns服务器的地址

1.5再向baidu.com所在的dns服务器发起查询,查询到www.baidu.com的服务器ip地址返回,查不到则报错说明域名解析有问题或者域名过期等

2,找到ip,开始进行三次握手,客户端和服务器建立通信连接

详细:https://blog.csdn.net/weixin_44134588/article/details/110116104

3,连接建立后,客户端向服务器发起查询请求

4,服务器内部处理,返回网页字符串htmlstring (网页的状态:init - loading - interactive - complete)

5,浏览器收到htmlstring,开始进行解析构建dom树

1,从html标签开始解析构建dom树

2,遇见link引入的css资源的话,新起线程去加载css并构建cssom,css不会阻塞dom树的构建

3,遇见script引入的js资源,阻止dom树的解析构建,去加载js,加载完成后再继续dom树的解析构建,所以需要把js放在body底部

1,如果script引入js时声明了defer属性,表示这个资源延迟执行,不阻塞dom树的解析构建,defer声明的js会在DOMContentLoaded执行前执行。如果多个声明defer属性的js,他们是按照声明的顺序来执行

2,如果script引入js时声明了async属性,表示这个资源异步执行,不阻塞dom树的解析构建,async声明的js会在onLoad执行前执行。如果多个声明async属性的js,他们不按照声明的顺序来执行

4,当dom属性解析构建完成后,cssom也构建完成了,合并生成渲染树(render Tree),此时浏览器开始描述这些元素的属性

5,根据这些元素的属性生成渲染层或者合成层,合成层是一个独立的层级,利用这个特性来优化渲染

6,渲染层合成层生成完毕后,浏览器呈现引擎去调用底层的显卡,来绘制页面内容,显示到屏幕上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值