JS高级—01—浏览器原理



 一、浏览器渲染过程

浏览器输入url后,从服务器获取到html,然后需要scrpt标签和link标签就会去加载;

浏览器内核里的html解析器(蓝色方框)会将html里的标签生成一个dom树

 css解析器会生成css规则,然后结合在一起,再使用layout布局引擎将他们在不同浏览器下排版,然后再使用painting描绘引擎生成页面;

二、浏览器内核和js引擎区别

浏览器内核分两部分,一部分是webcore,一部分是jscore即js引擎;

三、js引擎之v8引擎

1。大概实现原理

js引擎有很多,我们以目前用的最多的v8引擎来探讨;

js引擎遇到js代码后,

首先由js 引擎的parse器,进行词法分析(将不表达式切成一个个词条)和语法分析(分析这个表达式的是干什么的),分析完后转化为ast树;(学习ast的网址https://astexplorer.net/)

然后js引擎的Ignition器将ast树转化为字节码,为什么要转化为字节码,因为字节码可以跨平台,以后既可以在mac上的chrome运行,也可以在win上运行,类似于java的jvm,

最后js引擎的Ignition器将ast树转化为字节码时还会进行信息收集,如果某一个函数执行的次数非常多,那么会使用trubo器将其直接转化成机器码,机器码肯定比字节码的运行速度快,这种方式可以有效加快js引擎处理js的速度;

 2.执行细节

相关