浅谈浏览器的解析机制

1.html+css渲染

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

 

 注意:当执行过程中遇到js代码时会停止html的解析,去加载js代码,js代码会去操作dom,对dom的渲染有影响

2.javascript的解析机制

javascript的源码是无法被计算机直接识别运行的,需要借助js引擎转化为汇编语言,然后再转化为机器可识别的机器语言

 

 javascript引擎解析Javascript代码会先将其抽象成语法树,解析器识别后解析成字节码,然后再解析成汇编代码,汇编代码再解析计算机能识别的机器语言,最后cpu执行。

谷歌的v8引擎会在收集到足够的代码信息后直接将抽象语法树优化成机器码(这会省去后面的过程,极大的加快浏览器对JavaScript的解析时间),当收集到的代码信息突然发生改变时,优化后的机器码会反向优化成字节码,防止错误,也就是红线的路径,比如javascript传入的sun()函数一直都是number类型,突然变成了string就会反向优化成字节码

3.chrome浏览器的解析

 

 

 

posted on 2021-07-27 09:52  还是种田踏实  阅读(167)  评论(0编辑  收藏  举报