浏览器内核介绍.doc

上传人:hw****26 文档编号:3114676 上传时间:2019-05-21 格式:DOC 页数:4 大小:54.50KB
下载 相关 举报
浏览器内核介绍.doc_第1页
第1页 / 共4页
浏览器内核介绍.doc_第2页
第2页 / 共4页
浏览器内核介绍.doc_第3页
第3页 / 共4页
浏览器内核介绍.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、浏览器内核的功能/JS 引擎的功能总结1、浏览器内核浏览器最重要或者说核心的部分是“Rendering Engine”,可译为 “解释引擎” ,也即我们平常所说的“浏览器内核” 。负责对网页语法的解释(如 HTML、JavaScript)并渲染网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法 的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。浏览器内核很多,不过通常主流的大约只有以下几种:1)Tri

2、dent:IE 浏览器使用的内核,该内核程序在 1997 年的 IE4 中首次被采用,是微软在Mosaic 代码的基础之上修改而来的,并沿用到目前的 IE8。 Trident 实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用 IE 内核而非 IE 的浏览器涌现(如 Maxthon、The World 、TT 、GreenBrowser、AvantBrowser 等) 。此外,为了方便也有很多人直接简称其为 IE 内核。由于 IE 本身的“ 垄断性”而使得 Trident 内核的长期一家独大,微软很长时间 都并没有更新 Trident 内核,这导致了两个后果一是 Trident

3、 内核曾经几乎与 W3C 标准脱节(2005 年) ,二是 Trident 内核的大量 Bug 等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为 IE 浏览器不安全的观点,也有很多用户转向了其他浏览 器,Firefox 和 Opera 就是这个时候兴起的。非 Trident 内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非 IE 浏 览器的浏览效果问题。2)Gecko:Netscape6 开始采用的内核,后来的 Mozilla FireFox (火狐浏览器) 也采用了该内核,Gecko 的特点是代码完全公开,因此,其可开发程度很高,全

4、世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到 许多人的青睐,Gecko 内核的浏览器也很多,这也是 Geckos 内核虽然年轻但市场占有率能够迅速提高的重要原因。 事实上,Gecko 引擎的由来跟 IE 不无关系,前面说过 IE 没有使用 W3C 的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape 的一些员工一起创办了 Mozilla,以当时的 Mosaic 内核为基础重新编写内核,于是开发出了 Geckos。不过事实上,Gecko 内核的浏览器仍然还是 Firefox (火狐) 用户最多,所以有时也会被称为Firefox 内核。

5、此外 Gecko 也是一个跨平台内核,可以在 Windows、 BSD、Linux 和 Mac OS X 中使用。3)Presto:目前 Opera 采用的内核,该内核在 2003 年的 Opera7 中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto 有着天生的 优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行 Javascrpt 的时候有着最快的速度,根据在同等条件下的测 试,Presto 内核执行同

6、等 Javascrpt 所需的时间仅有 Trident 和 Gecko 内核的约 1/3(Trident 内核最慢,不过两者相差没有 多大) 。那次测试的时候因为 Apple 机的硬件条件和普通 PC 机不同所以没有测试 WebCore 内核。只可惜 Presto 是商业引擎,使用 Presto 的 除开 Opera 以外,只剩下 NDSBrowser、Wii Internet Channle、Nokia 770 网络浏览器等,这很大程度上限制了Presto 的发展。4)Webkit:苹果公司自己的内核,也是苹果的 Safari 浏览器使用的内核。 Webkit 引擎包含 WebCore 排版

7、引擎及 JavaScriptCore 解析引擎,均是从 KDE 的 KHTML 及 KJS 引擎衍生而来,它们都是自由软 件,在 GPL 条约下授权,同时支持 BSD 系统的开发。所以Webkit 也是自由软件,同时开放源代码。在安全方面不受 IE、Firefox 的制约,所以 Safari浏览器在国内还是很安全的。 限于 Mac OS X 的使用不广泛和 Safari 浏览器曾经只是 Mac OS X 的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了 Opera 的 Presto 了当然 这一方面得益于苹果转到 x86架构之后的人气

8、暴涨,另外也是因为 Safari 3终于推出了 Windows 版的缘故吧。Mac 下还有 OmniWeb、Shiira等人气很高的浏览器。 google 的 chrome 也使用 webkit 作为内核。 WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokias Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。5)KHTML:是 HTML 网页排版引擎之一,由 KDE 所开发。KDE 系统自 KDE2 版起,在档案及网页浏览器使用了 KHTML 引擎。该引擎以 C+编

9、程语言 所写,并以 LGPL 授权,支援大多数网页浏览标准。由于微软的 Internet Explorer 的占有率相当高,不少以FrontPage 制作的网页均包含只有 IE 才能读取的非标准语法,为了使 KHTML 引擎可呈现的网页达到最多, 部分 IE 专属的语法也一并支援。KHTML 拥有速度快捷的优点,但对错误语法的容忍度则比 Mozilla 产品所使用的 Gecko 引擎小。苹果电脑于 2002 年采纳了 KHTML,作为开发 Safari 浏览器之用,并发布所修改的最新 及过去版本源代码。后来发表了开放源代码的 WebCore 及 WebKit 引擎,它们均是 KHTML 的衍生

10、产品,在开发网站列出引擎改变内容,并会传回至 KDE 计划。2、JS 引擎最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。JavaScript 最初由网景公司的 Brendan Eich 设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了 ECMAScript 标 准。JavaScript 在浏览器的实现中还必须含有 DOM 和 BOM。Web 浏览器一般使用公共 API 来创建主机对象来负责将 DOM 对象反射进 JavaScript。JS 引擎负责对 JavaScript 进行解释、编译和执行,以使网页达到一些动态

11、的效果。主要的网页浏览器 JavaScript 引擎:1) Mozilla Rhino,由 Mozilla 基金会管理, 开放源代码,完全以 Java 编写。 SpiderMonkey,第一款 JavaScript 引擎,由 Brendan Eich 在 Netscape Communications 时编写,用于 Mozilla Firefox 1.03.0版本。 TraceMonkey,基于实时编译的引擎,其中部份代码取自 Tamarin 引擎,用于 Mozilla Firefox 3.53.6版本。 JgerMonkey,德文 Jger 原意为猎人,结合追踪 和组合码技术大幅提高效能,部

12、分技术借凿了 V8、JavaScriptCore、WebKit,用于 Mozilla Firefox 4.0以上版本。2)Google V8,开放源代码,由 Google 丹麦开发,是 Google Chrome 的一部分。3)微软 Chakra,中文译名为查克拉,用于 Internet Explorer 9。4)其它 KJS,KDE 的 ECMAScript/JavaScript 引擎,最初由 Harri Porten 开发,用于 KDE项目的 Konqueror 网页浏览器中。 Narcissus,开放源代码, 由 Brendan Eich 编写(他也参与编写了第一个SpiderMonke

13、y) 。 Tamarin,由 Adobe Labs 编写, Flash Player 9所使用的引擎。 Nitro(原名 SquirrelFish) ,为 Safari 4编 写。 Carakan,由 Opera 软件公司编写,自 Opera10.50版 本开始使用。性能演化2008 年 5月11 日,Mozilla 采用 PGO(Profile-guided Optimizations)特性指引优化,使Firefox 3.0的性能大幅提升。 2009年 6月30日发布的 Firefox 3.5使用了 Tracing 和 Nanojit 技术,能“在某些情况下的速度提升20到40倍”,其中 N

14、anojit 的代码由 Adobe 贡献。 22008年6月2日,WebKit 开发团队声明了 SquirrelFish 一个新的 JavaScript 引擎能极大地提升 Safari 解释脚本的速度。该引擎是 Safari 4其中一个新特性,在2008年6月11日发布给程序员使用;最终此 JavaScript 引擎被称为 Nitro。在浏览器开发者之间展开了一场开发更快的 JavaScript 引擎的竞赛。2008年, Google Chrome 因它的 JavaScript 性能而被受称赞,但是其它浏览器马上使用了更快的 JavaScript引擎。之后, Google Chrome 在性能

15、上获得领先,其长处在于它高速的性能和 JavaScript 的 处理速度,这些都由许多网站在主要的浏览器之间的速度测试中得到验证。 567随 着WebKit 的 Squirrelfish Extreme 和 Mozilla 的 TraceMonkey JavaScript 虚拟机 出现,Chrome的 JavaScript 执行速度就被超越了。Google 丹麦在 Chrome 2中开发了更快速的 V8引擎。一个典型的浏览器有一个图形引擎和一个独立的 JavaScript 引擎。这样 JavaScript 引擎能够被更方便的测试、重新生成或者在另一些项 目中使用。例如 Carakan 被用在

16、Presto 中,Nitro 被用在 WebKit 中,SpiderMonkey 被用在 Gecko 中,KJS 被用在 KHTML 中,Rhino默认不包含任何布局引擎。但还有其他组合,例如 V8与 WebKit 被用于 Google Chrome 中。JavaScript 引擎能为程序员提供部分操作浏览器的功能(网络、DOM 、外部事件、HTML5视频、canvas 和存储) 。Sunspider 是一个 JavaScript 实用基准测试通过一系列关于 JavaScript 语言的脚本测试JavaScript 引擎的速度。Sunspider 不测试无关于 JavaScript 的特性(不

17、使用 HTML、CSS 和无网络情况下) 。实现JavaScript 是一种 ECMAScript 方言,在许多程序中得以实现,特别是在网页浏览器。这些方言通常扩展了语言,或者标准库和相关 API,例如 W3C 定义的 DOM。这意味着以一种方言实现的程序不兼容于另一种方言的实现,除非程序使用了方言中的公共子集所具有的特性 和 API。在实现和方言中存在着一些差别。一种语言的方言有一些与语言不同的地方。实现能够执行该语言或方言编写的程序。应用程序(实现) 方言和最后版本 ECMAScript 版本Google Chrome,V8引擎 JavaScript ECMA-262,版本3Mozilla

18、 Firefox,Gecko 排版引擎,SpiderMonkey 和 Rhino JavaScript1.8.1ECMA-262,版本3Opera ECMAScript 与一些 JavaScript 1.5特性及一些 JScript 扩 展 ECMA-262,版本3KHTML 排 版引擎,KDE 项目的Konqueror 与苹果的 Safari JavaScript1.5ECMA-262,版本3Adobe Acrobat JavaScript1.5 ECMA-262,版本3OpenLaszlo Platform JavaScript1.4 ECMA-262,版本3Max/MSP JavaScript1.5 ECMA-262,版本3ANT Galio 3 JavaScript1.5附带 RMAI 扩展 ECMA-262,版本3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。