浏览器加载过程

浏览器加载过程: 
加载过程:
1. DNS解析 :把域名变成IP地址,大型网站不同地区IP地址是不一样的
2. 浏览器根据IP地址向服务器发起Http请求 (包括三次握手)
3. 服务器处理http请求,并返回给浏览器
渲染过程
1. 浏览器根据HTML代码生成DOM树
2. 浏览器根据css代码生成CSSOM
3. 将DOM树和CSSOM整合形成Render 树(渲染树),只有DOM树是无法渲染的,因为有些标签的css属性是在CSSOM中的
4. 浏览器根据render 树渲染页面
5. 如果遇到<script>则暂停渲染,优先加载并执行JS代码,完成在继续。因为JS进程和渲染进程共用一个线程,JS 有可能改变DOM结构,如果JS代码改变了DOM结构,那么如果提前渲染的DOM结构将是不正确的
6. 制止render 树渲染完成
为何一般建议把js放在body最后:
js可能会阻断渲染进程,使得页面渲染时间过长,从而影响页面加载速度。

题目: 为何把css放在head中:

把CSS放在head中的目的: html生成DOM tree时,根据浏览器默认及现有CSS生成render tree来渲染页面,当遇到新的CSS的时候需要下载并结合现有CSS重新生成render tree。但是如果把所有CSS都放到页面顶部,这样就没有重新渲染的过程了。简而言之,就是为了避免重新渲染页面

题目:为何一般建议把js放在body最后:
js可能会阻断渲染进程,使得页面渲染时间过长,从而影响页面加载速度

window.onload 和domContentLoaded区别:

加载图片不会阻塞页面DOM渲染过程:示例

执行的顺序: DOMContentLoaded, img loaded , window load

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值