JS引擎

浏览器

浏览器的核心是渲染引擎、JS引擎(JS解释器)

  • 渲染引擎,将网页代码渲染为用户视觉上可感知的平面文档。
  • JS引擎,读取网页中JS代码并对其处理。

渲染引擎

浏览器内核即网页浏览器排版引擎(LayoutEngine/Rending Engine),又称为页面渲染引擎或模板引擎,负责获取页面内容(如HTML、XML、图片等)、整理消息(如加入CSS等)、计算网页显示方式,然后输出至显示器或打印机。网页浏览器、电子邮件客户端等终端则根据表示性标记语言(Presentational Markup)来显示内容的应用程序都需要排版引擎。

浏览器典型内核:

  • Microsoft Internet Explorer 的 Trident
  • Mozilla Firefox 的 Gecko
  • Google Chrome 的 Blink
  • Apple Safari 的 Webkit

其实一个完整的浏览器不会只有一个排版引擎,还有自己的界面框架与其他功能支持,排版引擎本身不可能实现浏览器的所有功能。

渲染引擎处理网页的流程:

  • 解析代码,将HTML代码解析为DOM,将CSS代码解析为CSSOM(CSS Object Model)。
  • 对象合成,将DOM和CSSOM合成一颗渲染树(Render Tree)。
  • 布局,计算出渲染树的布局
  • 绘制,将渲染树绘制到屏幕

JS引擎

JS引擎是用来执行JS代码的,JS引擎的快慢对网页速度有着重大影响。简单来说,JS解析引擎是能够“读懂JS代码并准确地给出代码运行结果的一段程序。”。

对于静态语言而言,如C、C++、Java等,处理上述事情的叫做“编译器(compiler)”,对于动态的JS语言而言则叫做“解释器(interpreter)”。编译器与解释器的区别在于“编译器将源代码编译成另一种代码(如机器码或字节码等),而解释器是直接解析并将代码运行结果输出。”。例如Firebug的console就是一个JS的解释器。

典型JS引擎

  • Microsoft IE 的 Chakra,Chakra由Opera公司编写。
  • Mozilla Firefox 的 SpiderMonkey,第一款JS引擎。
  • Google Google 的 V8,C/C++编写。

既然JS是一段程序,JS代码也是程序,那么如何让程序去读懂程序呢?那就需要定义规则,而ECMAScript就是专门定义规则的,JS引擎根据ECMAScript定义的标准规则去解析JS代码。简单来说,ECMAScript定义语言的标准,JS引擎根据规则去实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值