`
xitongyunwei
  • 浏览: 921698 次
文章分类
社区版块
存档分类
最新评论

JavaScript学习笔记(O)——浏览器内核介绍

 
阅读更多

术语解释

浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

Rendering Engine  

浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。

1、Trident

IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE8。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如 Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

  由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。

2、Gecko

Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。

  事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Geckos。不过事实上,Gecko 内核的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。

3、Presto

目前Opera采用的内核,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

  实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。

4、Webkit

苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。

  限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。

  google的chrome也使用webkit作为内核。

  WebKit 内核在手机上的应用也十分广泛,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

  2010年4月8日最新的搜狗浏览器也是采用了webkit内核,号称双引擎内核,呼声很高,期待其发展。

附加:KHTML

KHTML,是HTML网页排版引擎之一,由KDE所开发。

  KDE系统自KDE2版起,在档案及网页浏览器使用了KHTML引擎。该引擎以C++编程语言所写,并以LGPL授权,支援大多数网页浏览标准。由于微软的Internet Explorer的占有率相当高,不少以FrontPage制作的网页均包含只有IE才能读取的非标准语法,为了使KHTML引擎可呈现的网页达到最多,部分IE专属的语法也一并支援。

  KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。

  苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎改变内容,并会传回至KDE计划。由于两个衍生产品各走不同路线,使两者源代码偏离,在与KDE交换更新会出现困难。其中一个原因,是苹果在对外公开源代码之前,以一年时间编修他们的KHTML。另外,苹果传送更新至KDE计划的方式,多是一口气把大量改动一起传送,KDE在整理资料也出现一定的困难,及后苹果表示会以CVS格式来传送。再者,苹果所作出的改动包括Mac OS X系统独有的事物,如Objective-C、KWQ等,在Linux及KHTML是没有的。但KDE方面仍透过这些改动,为KHTML加入新功能及加快其排版速度。

==============================================================================

主流浏览器简介

1、IE

内核:Trident

IE凭借其与微软操作系统的捆绑优势,占据了大部分用户的桌面,但由于其占用资源高、安全性低等缺点,使得其市场占有率越来越低,特别是非IE内核的firefox浏览器推出后,使其受到了严峻的挑战。

2、Firefox

内核:Gecko

Mozilla Firefox,非正式中文名称火狐,是一个开源网页浏览器,使用Geckos引擎(即非ie内核),由Mozilla基金会与数百个志愿者所开发。原名“Phoenix”(凤凰)后改名“Mozilla Firebird”(火鸟),再改为现在的名字。 Firefox是Mozilla基金会开发的一个轻便、快速、简单与高扩充性的浏览器。

3、Opera

内核:Presto

Opera为来自挪威的一个极为出色的浏览器,具有速度快、节省系统资源、订制能力强、安全性高以及体积小等特点,目前已经是最受欢迎的浏览器之一。多文件接口(MDI)、方便的缩放功能、整合搜索引擎、键盘截径与鼠标浏览功能、当机时下次可以从上次浏览进度开始、防止pop-up、Fullscreen、对HTML标准支持、整合电子邮件与新闻群组及让使用者自订接口按钮、skin、工具列等的排列方式,都是Opera多年来备受喜爱的特殊功能。

4、Chrome

内核:Trident和WebKit

Google Chrome,中文名为谷歌浏览器,是一个由Google公司开发的开放源代码网页浏览器。本软件的程式码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。

  它采用Trident内核(IE内核)与WebKit内核,但和Safari、Firefox、IE都不一样,不过开发这个引擎的很多人也参与了Firefox内核的开发。

5、Safari

内核:KDE的KHTML

Safari,苹果计算机的最新作业系统Mac OS X中新的缺省浏览器,用来取代之前的Internet Explorer for Mac。Safari使用了KDE的KHTML作为浏览器的运算核心。 目前该浏览器已支持Windows平台。

==============================================================================

基于多种内核的浏览器

傲游浏览器

  傲游浏览器3.0是国内首先尝试使用Webkit与Trident双核心的浏览器。Webkit核心将使你打开网页的速度更快,Trident 核心则会带给你更好的兼容性支持。除此之外,傲游3.0目前还包括智能填表、智能地址栏、弹窗过滤、在线收藏等功能。

QQ浏览器

  QQ浏览器5是腾讯公司推出的新一代浏览器,使用极速(Trident)和普通(IE)双浏览模式,设计了全新的界面交互及程序框架,目的是为用户打造一款快速、稳定、安全、网络化的优质浏览器。

搜狗浏览器

  搜狐出品,使用高速(webkit)和兼容(Trident)双浏览模式,保证良好兼容性的同时极大提升网页浏览速度。当采用高速模式访问网页出现问题时,可点击地址栏旁边的内核按钮直接切换内核,使用兼容性更佳的兼容模式正常浏览网页。

==============================================================================

手机浏览器

概念解释

手机浏览器是运行在手机上的浏览器,可以通过GPRS进行上网浏览互联网内容。

主流手机浏览器简介

1、UCWEB手机浏览器

是WEB、WAP手机浏览器,速度快而稳定,具有视频播放、网站导航、搜索、下载、个人数据管理等功能,助您畅游网络世界!

  UCWEB浏览器重新诠释了手机上网:多窗口浏览,联网快速,节省流量,支持标准网络协议(WEB/WAP协议)。跨平台浏览技术可以使每一个手机用户在手机上轻松、快捷地完成同互联网之间的信息交互,获得电脑端上的冲浪体验:收发电子邮件,登录论坛社区,阅读时事新闻,编写个人博客等,把精彩网络世界囊于手中,畅享移动新生活!

  UCWEB7.2重新设计了软件界面,页面展现更加简洁美观。得益全新的软件内核,UCWEB7.2执行效率更高,并且具备了新的功能特性:网络智能适配,自动检测手机中可用的数据接入点,并完成软件网络接入设置;缩放浏览模式,在手机上更真实还原页面的原貌;页面折叠技术,将页面上同类导航内容折叠显示,大大缩减了页面展示长度,更适合手机浏览;数据加密压缩传送算法,在提供安全浏览的同时,大大提升了页面数据加载速度,降低浏览所需流量……

2、星际手机浏览器

基于联龙科技移动互联网和互联网融合技术,面向3G时代的移动通信终端浏览器。星际浏览器的界面简洁,具备网摘阅读、WAP/WEB网页浏览、信息网络搜索、音乐播放、手机RSS信息订阅、以及页面电话呼出和短信发送等众多实用功能。

  星际浏览器采用智能适配技术、重组织规整技术和行为挖掘技术,融合WAP、WEB双网海量信息,并将内容自适应移动通信终端屏幕,为手机上网用户浏览网页 提供最佳浏览体验。星际浏览器内置强大的功能插件扩展模块,支持常用的JavaScript、CSS、Flash、Cookie等插件。

3、掌上百度

界面简洁而清晰。“简单,可依赖”拥有强大的无线搜索,贴吧、知道通过百度数直接调用数据,速度远远快于其他手机浏览器,且产生的流量很低。

焦点新闻、天气、热门关键词、浏览历史等实用的信息功能也已同步推出。如“天气”可以智能匹配用户位置,给出所在城市的天气预报。掌上百度所拥有的信息量是其他浏览器所不能比的。

4、GO手机浏览器

GO浏览器是3G门户独立开发的一款手机浏览器软件,可以在手机上实现浏览WAP、WWW网页。

  GO浏览器具有绚丽的界面、时尚简约的风格、飞速稳定的下载速度,同时通过特有的页面压缩技术,大大降低了网络流量,在提高手机访问互联网速度的同时,极大节省了用户的流量费用

  GO浏览器采用了Akebono UI进行开发,号称“可以让用户在普通的手机也实现像iPhone 的浏览体验”,界面和风格可以说非常华丽,滑动效果很柔和。

5、Opera手机浏览器

Opera起初是一款挪威Opera Software ASA公司制作的支持多页面标签式浏览的网络浏览器,由于新版本的Opera增加了大量网络功能,官方将Opera定义为一个网络套件。目前官方发布的个人电脑用的最新稳定版本为9.23。

  Opera支持多种操作系统,如Windows、Linux、Mac、FreeBSD、Solaris、BeOS、OS/2、QNX等,此外,Opera还有手机用的版本,在2006年更与Nintendo签下合约,提供NDS及Wii游乐器Opera浏览器软件;也支持多语言,包括简体中文和繁体中文。

  Opera还提供很多方便的特性,包括Wand密码管理、会话管理、鼠标手势、键盘快捷键、内置搜索引擎、智能弹出式广告拦截、网址的过滤、浏览器识别伪装和超过400种可以方便下载更换的皮肤,界面也可以在定制模式下通过拖放随意更改。下载一个大约10M的扩展以后,它甚至可以让你用语音控制以及阅读网页(英文)。而以上的这些,包括右键菜单都是可以由用户自定义的。

  Opera支持包括SSL 2/3以及TLS在内的各种安全协议,支持256位加密,可以抵御恶意代码攻击、钓鱼攻击等网络攻击。而其网页渲染速度也是当今速度最快的。它支持W3C标准 ,此外它还可以作者模式和用户模式让有经验的使用者控制浏览网页的结构和字体等。

6、windows手机浏览器

是微软开发的手机浏览器,依然基于IE内核,其在手机浏览器中表现平平,但是由于其与PC的兼容性,广大开发者对其依然抱有很大的期待。官方宣称WM IE7.0手机浏览器的体现有很大的改善。

7、safari手机浏览器

iphone是苹果开发的手机产品,其浏览器依然是safari,特为iphone做了优化,其对www网页的处理,图形采用缩放导航功能,而非原网页重排版。大屏幕,高性能,触屏全键盘,配合独特的网页渲染方式,使其上网体验与之前的其他手机浏览器产品相比,差异巨大。

8、YoYo浏览器

YoYo手机浏览器是一款可以运行于大多数手机上的受浏览器,具有快速、稳定、省流量、方便、快捷等特点。

  2009年9月,YoYo手机浏览器推出了1.0 Beta版本!

  YoYo手机浏览器具有以下优势:

  1. 更快上网速度:更快的上网速度和无延迟的操作响应,YoYo手机浏览器为您节省上网时间

  2. 更省流量:YoYo手机浏览器采用独特的压缩技术,以及对大的网页采用分页处理,使您最大程度的节省上网流量

  3. 更便捷的操作:YoYo手机浏览器为您独特设计的快捷键操作,使您只需要一两个按键操作就可以快速完成功能的切换

  4. 更智能的阅读模式:当您浏览网页时,您不需要点击“下一页”操作,只需在网页底部轻轻向下移动两次光标就可以快速翻页阅读

  5. 更优化的新闻浏览:YoYo手机浏览器针对新闻页面有专门的处理,让您只看想看的新闻标题,内容,评论,相关新闻等,专注于您所关注的。

  6. 更快速的导航:您只需按“*”键就可以弹出链接序号提示,输入序号就可以轻松访问链接,让您快速定位链接访问。

手机浏览器总结  

上面就是对2款常用的浏览器的介绍,通过比较可以发现目前opera手机浏览器功能上强大,但由于是国外软件,本地化工作有待改善,由于用了代理服务器,速度也偏慢,不支持CMWAP连接。

UCWeb浏览器属于国内产品,对本地化工作做的很好,加入了很多适用国内用户的功能,比如手机精品网址导航,中文编码的支持等等,支持CMWAP和CMNET网络和在线视频点播功能,是国内用户的首选。

==============================================================================

主流浏览器排行榜

1、全球排行榜

2、国内排行榜

==============================================================================

扩展阅读知识

经常听说各种不同的浏览器,IE、Opera、Firefox、Safari、The World还有现在的Chrome等。看似许多不同的浏览器,其实其中还是有很多相似之处。今天,我们就来了解他们的内核~!

那内核是什么呢?内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。
不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

简单的总结一下:

使用Trident内核的浏览器:IE、Maxthon、TT、The World等;

使用Gecko内核的浏览器:Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey;

使用Presto内核的浏览器:Opera7及以上版本;

使用Webkit内核的浏览器:Safari、Chrome。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics