`

关于浏览器内核的一些概念

阅读更多
什么是浏览器内核

       要想搞清楚浏览器内核是什么,首先应该搞清楚浏览器的构成是怎样的。简单来说浏览器可以分为两部分: shell + 内核。其中 shell 的种类相对较多,内核则 较少。shell 是指浏览器的外壳:如菜单,工具栏等。主要是提供给用户界面操作,参数设置等等;内核则是一些基于标记语言显示内容的程序或模块,它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(如加入CSS)、计算网页的显示方式、然后输出至显示终端或打印机并解释执行客户端脚本。在浏览器中,shell 通过调用内核来实现各种功能的。所以内核才是浏览器的核心,它的功能如何就决定了浏览器的特点和表现如何。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。这就是了解浏览器内核对前端开发人员的意义所在。
      浏览器内核又可以分成两部分:JS 引擎和渲染引擎(layout engineer或者Rendering Engine)。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS 引擎负责解析并执行 Javascript 语言,以此实现网页的动态效果;渲染引擎则负责 JS 引擎以外的其它内核功能。最开始渲染引擎和 JS 引擎并没有很明确的区分,随着 JS 引擎越来越独立,人们所说的浏览器内核就仅指浏览器的渲染引擎了。

浏览器内核的分类

     浏览器内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核有以下四种:
          1、Trident
          2、Gechko
          3、Presto
          4、Webkit


     一、Trident

     Trident 又称 MSHTML,是微软开发的 IE 浏览器内核。它由于被包含在全世界使用率最高的操作系统Windows中,因此拥有极高的市场占有率。这也导致很多其它浏览器都使用这个引擎,例如 QQ浏览器,Maxthon(最新版已经不使用)、360 和搜狗浏览器等。但额外需要知道的是 QQ浏览器,Maxthon 和搜狗浏览器均是双核浏览器,了解这点对这些平台上的开发很有帮助。
     由于这种内核比较流行,以前的很多网页都是根据它的标准来编写的。实际上这个内核对网页标准支持不是很好,甚至在2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节。同时 Trident 内核本身的 BUG 比较多,对一些符合 W3C 标准的网页代码支持不是很好。这在早期的 IE 版本中比较明显,比如IE5.5以前(包括IE5.5)。其实IE6对W3C标准的支持也不是很好,而我们现在仍然有相当一部分人在使用IE6,事实上它也属于一个比较早的版本。

     二、Gechko
     Gecko 是用 C++ 编写的开源渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有 Firefox、Netscape 和 Flock 等。这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口。同时它还是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。但是代价是也显而易见的,就是要消耗很多的资源,比如内存。


     三、Presto
     Presto 由 Opera Software 公司开始的,用于 Opera 浏览器的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了 Presto 内核。

     Presto 是一个动态内核,页面的全部或者部分可随着 DOM 及 Script 语法的事件而重新解析。Presto 内核附带的 JS 引擎被称为公认的浏览网页速度最快的,这得益于它在开发时的天生优势,在处理 JS 脚本等脚本语言时,会比其他的内核快3倍左右。缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。此外,由于 Presto 是商业引擎,使用它的除开 Opera,就只剩下 NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等少数几个了,很大程度上限制了 Presto 的发展。


     四、Webkit
     Webkit 是一个基于 KHTML(是HTML网页排版引擎之一,由KDE所开发) 开发的开源项目,包含了来自 KDE 项目和苹果公司的一些组件,以及 Webcore 和 JavaScriptCore(SquirrelFish,V8)两个引擎,主要用于Mac OS系统。它主要的使用者有 Safari、Chrome。
     Webkit 的特点在于源码结构清晰、渲染速度极快,虽然不及 Presto 但是也胜于 Gecko 和 Trident。缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。
分享到:
评论

相关推荐

    Opera 10.00 浏览器

    并且Opera不是基于微软ie内核的浏览器,现在很对病毒都是针对ie内核编制的,故对Opera不存在威胁。而且Opera浏览网页使用多线程技术,可以有效使用带宽。让你上网有“飞”一般的感觉。Opera率先使用鼠标手势使浏览...

    Safari浏览器+QuickTimePlayer

    可建立在一些与时基数据相关的概念基础之上的:原子(Atom)、媒体结构(Media structures)、组件(Component)、时间管理(Time management)、动画图像(Sprites)。 可运行在Max OS和Windows系统上。它的构成元素包括一...

    详解JS浏览器事件循环机制

    浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。 浏览器内核有多种线程在工作。 GUI ...

    实验1--操作系统环境.doc

    a) 处理器_________________________ b) 存储器_________________________________ c) 输入设备__________________________ d) 输出设备_____________________________ 2) 在空格中,填写3个概念中的一个:内核、...

    主流浏览器多进程架构对比以及检测方法

    为了应对浏览器经常出现崩溃的现象,现在很多浏览器厂商都采用了多进程标签浏览的概念,其中包括主的IE8、Chrome、Firefox浏览器,而众多基于WebKit的浏览器在苹果发布WebKit2内核以后已经将可以后采用多进程标签...

    浅析html网页基本概念

    html文档经过浏览器内核渲染后展示出来的页面(五大主流浏览器及四大内核) html文档文件名后缀是.html,之前存在的.htm是为支持DOM系统(目前织梦还是用.htm文件名结尾文件) 编码是我们通过代码的形式把想要展示的...

    iwolfram:Wolfram Mathematica的jupyter内核

    想法是为这两种语言的版本提供一个通用的内核,并具有兼容的笔记本形式。 到目前为止,这只是一个概念证明。 正在安装 $ pip install -e . ... Installing collected packages: wolfram-kernel Running setup.py ...

    关于Web前端之HTML5,你知道多少?

    浏览器内核 IE:trident 谷歌/欧鹏:blink 火狐:gecko 苹果(Safari):webkit 概念:也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息,渲染引擎是兼容性问题出现的根本...

    计算机毕业论文基于QT的嵌入式终端界面开发设计03781.doc

    随着IT产业、信息产业和家电产业等的迅猛发展,嵌入式系统(Embedded System)无疑是...本课题重点是界面开发,其中播放器模块采用开源播放器Mplayer的slave模式来实现,浏览器采用移植开源浏览器Konqueror的内核来完成

    Electron开发仿网易云音乐播放器(视频)

    Electron 作为一个成熟的前端轻框架,已经受到众多主流桌面系统青睐。...通过从零开始,一步步完成一个完整的应用,整个过程中穿插了 Node.js 的第三种玩法和集成浏览器内核的原理,让你轻松高效学会 Electron 开发。

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,因此仍存在着诸多问题亟需解决,包括:(1)多窗口类浏览器模式问题。安卓上用于加载的Webview视图窗口只是作为类浏览器而...

    嵌入式Linux系统基础概念

    学习嵌入式Linux困难,主要因为涉及知识和概念过多,即比较复杂,所以学习嵌入式Linux的就需要找到,需要模块化,需要进行层次划分。  嵌入式Linux系统做模块化处理就是可划分为Bootloader(引导程序),Kernel(内核...

    搜狗输入法智慧版

    (仅支持IE内核浏览器) 文思泉涌:输入诗词,按下空格或标点后,搜狗立刻为您展示诗词下句,让您轻松写作!还有一些惊喜等您去发现哦! 妙笔生花:词穷、文章不生动,怎么办?妙笔生花帮您忙!根据输入自动匹配,各种...

    JavaScript框架OurJS.zip

    OurJS 目前完全兼容 PC 端的 IE6 、Firefox、Chrome、Safari、Opera 以及其他使用 Trident 和 WebKit 内核的浏览器。稍后还会对移动设备提供支持。 设计思想: 不创造 JS 和 DOM 范畴之外的概念。它们本身就在不断...

    500多集Web大前端全栈开发视频教程 Web大前端零基础到项目案例实战课程

    ├─1-04-常用浏览器以及内核.mp4 ├─1-05-web标准.mp4 ├─1-06-HTML标签导读.mp4 ├─1-07-HTML语法规范.mp4 ├─1-08-HTML基本结构标签.mp4 ├─1-09-VSCode工具创建页面.mp4 ├─1-10-DOCTYPE和lang以及字符集...

    淘宝登录java源码-front-back-separation:基于node.js实现前后端分离讲稿

    浏览器一般包括渲染器和js脚本引擎,以chrome浏览器为例,用的webkit内核的渲染器,V8的脚本引擎,而node.js用到了v8引擎。总而言之它就是一个js的运行环境,就好比浏览器的F12调试工具,只不过node.js没有DOM和BOM...

    转到osquery的绑定-Golang开发

    使用osquery,SQL表代表抽象概念,例如正在运行的进程,已加载的内核模块,开放的网络连接,浏览器插件,硬件事件或文件哈希。 如果您想了解有关osquery的更多信息,请访问GitHub项目,网站和用户指南。 什么是...

    EZUIKit-JavaScript-test:海康萤石云测试

    国产浏览器请使用急速模式(webkit内核) Android 4.4+ Safari for iOS 9.3+ 使用说明 页面引入js [removed][removed] 页面创建一个video标签 [若设置autoplay属性则默认自动播放] <video id="myPlayer" poster="...

Global site tag (gtag.js) - Google Analytics