浏览器最核心的部分是渲染引擎(Rendering Engine),我们一般习惯称之为“浏览器内核”,其负责解析网页语法(如HTML、JavaScript)并渲染、展示网页。因此,所谓的浏览器内核通常也就是指浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解析也有所不同,因此同一网页在不同的内核浏览器里的渲染、展示效果也可能不同。
l 主流浏览器内核介绍
主流浏览器内核分类:浏览器内核种类繁多,商用的加上非商业的免费内核,大约有10款以上甚至更多,不过通常比较常见的大约只有以下4种,下面就简单介绍一下。
(1)Trident
Trident(又称为MSHTML),是微软的Windows搭载的网页浏览器——Internet Explorer浏览器使用的内核(俗称IE内核),该内核程序在1997年的IE 4中首次被采用,之后不断地加入新的技术并随着新版本的IE发布。Trident实际上是一款开放的内核,Trident引擎被设计成一个软件组件(模块),使得其他软件开发人员很容易将网页浏览功能加到他们自行开发的应用程序里,其接口内核设计相当成熟,因此才涌现出许多采用IE内核而非IE的浏览器(如Maxthon、软媒的闪游浏览器、腾讯的TT、GreenBrowser等),但是Trident只能用于Windows平台。
由于IE本身的“垄断性”而使得Trident内核在很长时间内都是一家独大,微软也在相当长一段时间内都没有更新Trident内核,这就导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节;二是Trident内核的大量Bug等安全性问题没有得到及时解决。目前,微软对Trident排版引擎做了重大变动,除了加入新的技术之外,还增加了对网页标准的支持。尽管这些变动已经在相当大的程度上落后了其他的排版引擎,如Gecko、WebCore、KHTML及Presto。
(2)Gecko
Gecko是开放源代码、以C++编写的网页排版引擎,目前被Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这款软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。由于Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,采用Gecko内核的浏览器也很多,这也是Gecko内核虽然年轻但市场占有率能够迅速提高的重要原因。
Gecko排版引擎提供了一个丰富的程序界面以供与互联网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等。虽然最初的主要对象是Mozilla的衍生产品,如Netscape和Mozilla Firefox,但是现在已有很多其他软件利用这个排版引擎。此外Gecko也是一个跨平台内核,可以在Windows、BSD、Linux和Mac OS X中使用。
Gecko是最流行的排版引擎之一,其流行程度仅次于Trident。使用Gecko引擎的浏览器有Firefox、网景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、Songbird、XeroBank。Google Gadget引擎采用的就是Gecko浏览器引擎。
(3)Presto
Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.0~10.00版本使用该款引擎。Presto的特点就是渲染速度的优化达到了极致,它是目前公认的网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。
Presto实际上是一个动态内核,与Trident、Gecko等内核的最大区别就在于脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript时有着最快的速度,根据同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。不过,不足之处在于Presto是商业引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770网络浏览器等,这在很大程度上限制了Presto的发展。 Opera Widget引擎采用的就是Presto引擎。
(4)WebKit
WebKit 是一个开放源代码的浏览器引擎(Web Browser Engine),WebKit最初的代码来自KDE的KHTML和KJS(它们均为开放源代码,都是自由软件,在GPL协议下授权)。所以WebKit也是自由软件,同时开放源代码。
除了Safari浏览器,Mac下还有OmniWeb、Shiira等人气很高的浏览器。Google的chrome也使用WebKit作为内核。 WebKit内核在手机上的应用也十分广泛,例如Google的Android平台浏览器、Apple的iPhone浏览器、Nokia S60浏览器等所使用的浏览器内核引擎,都是基于WebKit引擎的。 WebKit内核也广泛应用于Widget引擎产品,包括中国移动的BAE、Apple的Dashboard以及Nokia WRT在内采用的均为WebKit引擎。
分享到:
相关推荐
首先, renderer元标签是一种为双核浏览器(如360浏览器)准备的标签,通过该标签可以指定浏览器在处理网页时,默认使用的渲染内核。这种元标签的设置可以避免浏览器自动切换到兼容模式,从而可能影响网页的显示效果...
首先,浏览器之间的兼容性差异是由于不同浏览器的内核不同以及各自遵循的Web标准有所差异造成的。早期,不同浏览器厂商往往有自己的实现方式,这些实现可能并不完全遵守ECMAScript标准(JS语言的标准化规范)。尽管...
在现代Web开发中,需要支持的浏览器类型大致可以分为基于IE内核和基于Mozilla内核两类。以Maxthon为代表的浏览器基于IE内核,而FireFox和Opera则属于基于Mozilla的浏览器。考虑到这些浏览器之间的差异,代码实现时...
网络摄像机的出现得益于通信和网络技术的快速发展,它们允许用户通过网络实现远程实时监控,无需额外的专业软件,只需要常见的网络浏览器。然而,传输高清实时视频流需要大量的带宽,因此数据压缩至关重要。传统的...
在探讨《HTML5智能手机UI布局浅谈》这一主题时,我们深入分析了HTML5在智能手机用户界面设计中的应用,以及它如何改变了移动Web开发的格局。以下是对标题、描述及部分文档内容中提及的关键知识点的详细解读。 ### ...
Android系统的架构分为多个层次,首先是最顶层的应用程序,包括联系人管理、短信应用、浏览器、日历等核心应用,它们全部使用Java语言编写。开发者可以通过应用程序框架来访问和重用核心应用的API,这极大地促进了...
ARM(Advanced RISC Machines)架构是一种精简指令集计算机(RISC)架构,以其高效能、低功耗的特点,在嵌入式系统和移动设备领域得到了广泛应用。ARM处理器采用授权模式,允许不同厂商根据自己的需求定制内核,从而...
不同的浏览器使用的内核不同,所以他们的渲染过程也是不一样的。目前主要有两个 webkit渲染过程 Gecko渲染过程 从上面两个流程图我们可以看出来,浏览器渲染的流程如下: HTML解析文件,生成DOM Tree,解析CSS...
本篇将详细介绍几种常见的数据结构,包括栈、队列、数组、链表以及红黑树。 ### (一)栈 (Stack) 栈是一种线性数据结构,遵循“后进先出”(LIFO,Last In First Out)的原则。这意味着最后存入的数据将是第一个...
"浅谈Okhttp去除请求头user-agent" Okhttp是一个流行的Android网络请求库,它提供了一个简洁的API来发送HTTP请求。然而,在某些情况下,我们需要去除请求头中的User-Agent信息,以避免服务器端的检测或其他原因。本...
1. -webkit-:主要用在Chrome, Safari, Opera(新版本),和iOS版的Safari等基于Webkit内核的浏览器中。 2. -moz-:用在Firefox浏览器中,为Mozilla Firefox浏览器的CSS扩展。 3. -o-:用在早期版本的Opera浏览器...
在描述中提到了一个具体的测试案例,当屏幕分辨率为1920×1080,使用QQ浏览器(内核为Chrome)时,初始状态下`window.innerWidth`返回1920px,表示浏览器窗口的宽度;`window.innerHeight`返回950px,表示窗口的高度...
HTML5 video元素是现代Web开发中常用的一种多媒体内容嵌入方式,它允许开发者在网页中嵌入视频而无需依赖浏览器插件,尤其是在移动设备上的表现和兼容性一直是前端开发者关注的焦点。本文针对移动端HTML5 video的...
嵌入式操作系统是支持嵌入式系统应用的操作系统软件,它是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。与通用操作系统相比较...
值得注意的是,由于浏览器的兼容性问题,通常我们需要使用`-webkit-`前缀来支持Webkit内核的浏览器,如Chrome和Safari。在实际项目中,可能还需要考虑其他浏览器的兼容性,例如Firefox的`MozTransitionEnd`和`...
嵌入式操作系统(RTOS)是嵌入式系统的关键组件,它包括底层驱动、系统内核、设备驱动接口、通信协议、图形用户界面(GUI)以及标准浏览器等,确保系统的高效运行和良好交互。 嵌入式操作系统的特性主要体现在以下...
- 消息传递方式:select和poll需要内核到用户空间的数据拷贝,epoll通过共享内存减少拷贝。 总的来说,epoll通常被认为是高性能的选择,但在某些特定场景下,如连接数少且活跃时,select或poll可能更合适。具体使用...
**1.1网页设计需求浅谈** 在当今数字化时代,网页设计不仅是信息传递的媒介,更是艺术与技术结合的产物。随着网络技术和网页制作技术的不断进步,网页设计的需求已经从单一的信息展示转向了更加注重用户体验和视觉...