我用一张图彻底理解了浏览器的解析机制

浏览器对htmlcssjavascript的解析过程,对于前端学习相关知识的理解很有帮助,毕竟万丈高楼平地起吗,而且面试的时候很容易会问到浏览器解析过程的

🍔html+css渲染

前端页面实际上都是一些html代码,浏览器会通过html parse对html代码进行解析,生成dom树,css一样会进行解析然后通过attachment将html和css进行复加,生成render tree渲染树和layout tree布局树,两者结合起来进行绘制,便能在浏览器上看见展示的页面了。

在这里插入图片描述
当执行过程中遇到jacascript代码时会停止html解析,去加载JavaScript代码,因为JavaScript代码会操作dom,使dom树发生改变。

🍕javascript解析机制

javascript是高级语言,javascript引擎的作用就是将他们转换为汇编语言再转换为计算机能认识的机器语言
在这里插入图片描述
🍬javascript引擎解析Javascript代码会先将其抽象成语法树,解析器识别后解析成字节码,然后再解析成汇编代码,汇编代码再解析计算机能识别的机器语言,最后cpu执行。
🍬谷歌的v8引擎会在收集到足够的代码信息后直接将抽象语法树优化成机器码(这会省去后面的过程,极大的加快浏览器对JavaScript的解析时间),当收集到的代码信息突然发生改变时,优化后的机器码会反向优化成字节码,防止错误,也就是红线的路径,比如javascript传入的sun()函数一直都是number类型,突然变成了string就会反向优化成字节码

🍟chrome浏览器解析过程

在这里插入图片描述
当浏览器解析完html、css和javascript之后,中间层会根据他们发起的请求调用操作系统进行相应的操作,如文件读取等。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值