什么是浏览器内核
要想搞清楚浏览器内核是什么,首先应该搞清楚浏览器的构成是怎样的。简单来说浏览器可以分为两部分: 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不是基于微软ie内核的浏览器,现在很对病毒都是针对ie内核编制的,故对Opera不存在威胁。而且Opera浏览网页使用多线程技术,可以有效使用带宽。让你上网有“飞”一般的感觉。Opera率先使用鼠标手势使浏览...
可建立在一些与时基数据相关的概念基础之上的:原子(Atom)、媒体结构(Media structures)、组件(Component)、时间管理(Time management)、动画图像(Sprites)。 可运行在Max OS和Windows系统上。它的构成元素包括一...
浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。 浏览器内核有多种线程在工作。 GUI ...
a) 处理器_________________________ b) 存储器_________________________________ c) 输入设备__________________________ d) 输出设备_____________________________ 2) 在空格中,填写3个概念中的一个:内核、...
为了应对浏览器经常出现崩溃的现象,现在很多浏览器厂商都采用了多进程标签浏览的概念,其中包括主的IE8、Chrome、Firefox浏览器,而众多基于WebKit的浏览器在苹果发布WebKit2内核以后已经将可以后采用多进程标签...
html文档经过浏览器内核渲染后展示出来的页面(五大主流浏览器及四大内核) html文档文件名后缀是.html,之前存在的.htm是为支持DOM系统(目前织梦还是用.htm文件名结尾文件) 编码是我们通过代码的形式把想要展示的...
想法是为这两种语言的版本提供一个通用的内核,并具有兼容的笔记本形式。 到目前为止,这只是一个概念证明。 正在安装 $ pip install -e . ... Installing collected packages: wolfram-kernel Running setup.py ...
浏览器内核 IE:trident 谷歌/欧鹏:blink 火狐:gecko 苹果(Safari):webkit 概念:也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息,渲染引擎是兼容性问题出现的根本...
随着IT产业、信息产业和家电产业等的迅猛发展,嵌入式系统(Embedded System)无疑是...本课题重点是界面开发,其中播放器模块采用开源播放器Mplayer的slave模式来实现,浏览器采用移植开源浏览器Konqueror的内核来完成
Electron 作为一个成熟的前端轻框架,已经受到众多主流桌面系统青睐。...通过从零开始,一步步完成一个完整的应用,整个过程中穿插了 Node.js 的第三种玩法和集成浏览器内核的原理,让你轻松高效学会 Electron 开发。
然而,由于HTML5的W3C标准规范还未制定,安卓系统中类浏览器Webview自身存在一些局限性,因此仍存在着诸多问题亟需解决,包括:(1)多窗口类浏览器模式问题。安卓上用于加载的Webview视图窗口只是作为类浏览器而...
学习嵌入式Linux困难,主要因为涉及知识和概念过多,即比较复杂,所以学习嵌入式Linux的就需要找到,需要模块化,需要进行层次划分。 嵌入式Linux系统做模块化处理就是可划分为Bootloader(引导程序),Kernel(内核...
(仅支持IE内核浏览器) 文思泉涌:输入诗词,按下空格或标点后,搜狗立刻为您展示诗词下句,让您轻松写作!还有一些惊喜等您去发现哦! 妙笔生花:词穷、文章不生动,怎么办?妙笔生花帮您忙!根据输入自动匹配,各种...
OurJS 目前完全兼容 PC 端的 IE6 、Firefox、Chrome、Safari、Opera 以及其他使用 Trident 和 WebKit 内核的浏览器。稍后还会对移动设备提供支持。 设计思想: 不创造 JS 和 DOM 范畴之外的概念。它们本身就在不断...
├─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以及字符集...
浏览器一般包括渲染器和js脚本引擎,以chrome浏览器为例,用的webkit内核的渲染器,V8的脚本引擎,而node.js用到了v8引擎。总而言之它就是一个js的运行环境,就好比浏览器的F12调试工具,只不过node.js没有DOM和BOM...
使用osquery,SQL表代表抽象概念,例如正在运行的进程,已加载的内核模块,开放的网络连接,浏览器插件,硬件事件或文件哈希。 如果您想了解有关osquery的更多信息,请访问GitHub项目,网站和用户指南。 什么是...
国产浏览器请使用急速模式(webkit内核) Android 4.4+ Safari for iOS 9.3+ 使用说明 页面引入js [removed][removed] 页面创建一个video标签 [若设置autoplay属性则默认自动播放] <video id="myPlayer" poster="...