【前端】浅谈浏览器内核:渲染引擎、JS引擎

浏览器内核是什么?

简而言之,浏览器内核就是把我们编写的代码转换为页面的中控件。
虽然现在大家谈起浏览器内核时,多指代渲染引擎(Rendering engine 或 layout engineer)。但其实浏览器内核包括了两部分,渲染引擎JS引擎,只是后来JS引擎用的越来越多所以就单独的把JS引擎拿了出来。

渲染引擎

渲染引擎负责负责对网页语法的解释(如HTML、XML等)并渲染网页(CSS)。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
下面介绍一下主流的渲染引擎。

  • Trident(IE)
    国内许多双核浏览器的其中一核便是Trident,也就是我们所说的兼容模式。
    如IE、腾讯TT、猎豹浏览器、360极速浏览器、百度浏览器等都使用了Trident。
    在Win10发布后,微软将其内置浏览器命名为Edge,Edge的最显著特点就是新内核EdgeHTML。
  • Gecko(firefox)
    Gecko的最大特点便是完全开源,开发程度很高。可惜近几年开始没落了,如打开速度过慢,猪一样的对友Flash以及神一样的对手Chrome。
  • WebKit(safari)
    大名鼎鼎的WebKit内核是苹果公司开发的。像Opera、Chrome早期都使用的是WebKit作为浏览器内核。
    虽然Chrome早已换为Blink内核,但是当提到WebKit时,大家还是会自动联想到Chrome(苹果已经哭晕在厕所)。
  • Blink(Chrome)
    2013年,Google 宣布将在未来的 Google Chrome/Chromium 中使用基于 WebKit 的 fork Web 渲染引擎:Blink。同时 Opera 表示也将跟进 Google Chrome/Chromium 的步伐。
    且目前大部分国内浏览器最新版本的内核也都改为了Blink。
JS引擎

JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。即负责对JavaScript脚本的解释与执行。

  • V8(Chrome)
    谷歌公司开发的V8浏览器基于C++,在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如内联缓存(inline caching)等方法来提高性能。有了这些功能,JavaScript程序在V8引擎下的运行速度媲美二进制程序。
    NodeJS其实就是封装了V8。
  • Chakra (IE)
    Chakra 中文译名为查克拉(火影乱入)。虽然新版的IE(IE9及之后的版本)以及Edge使用的是Chakra,但老版的IE仍然使用的是Jscript。
  • Nitro(SquirrelFish)(Safari)
    2008年6月2日,WebKit开发团队声明了SquirrelFish,一个能极大地提升Safari解释脚本速度的JavaScript引擎。
    SquirrelFish是基于寄存器、直接线程的高级字节码引擎。
  • Carakan(Opera)
  • Mozilla(firefox)
总结

一个典型的浏览器有一个渲染引擎和一个独立的JavaScript引擎。这样JavaScript引擎能够被更方便的测试、重新生成或者在另一些项目中使用。例如Carakan被用在Presto中,Nitro被用在WebKit中,SpiderMonkey被用在Gecko中,KJS被用在KHTML中,Rhino默认不包含任何布局引擎。但还有其他组合,例如V8与WebKit被用于Chrome浏览器中。JavaScript引擎能为程序员提供部分操作浏览器的功能(网络、DOM、外部事件、HTML5视频、canvas和存储)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值