浏览器内核及渲染过程介绍

不同浏览器内核引擎区别
服务器君一共花费了421.884 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。

内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。(参见维基百科)JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

四种主流浏览器内核

浏览器的页面渲染引擎负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要页面渲染引擎。

  1. Trident页面渲染引擎 –> IE系列浏览器;
  2. Gecko页面渲染引擎 –> Mozilla Firefox;
  3. KHTML页面渲染引擎或WebKit框架 –> Safafi和Google Chrome;
  4. Presto页面渲染引擎 –> Opera

Trident(又称为MSHTML),是微软的视窗操作系统(Windows)搭载的网页浏览器—Internet Explorer的页面渲染引擎的名称,它的第一个版本诞生于1997年10月Internet Explorer第四版中,IE7做了的重大的变动,除了加入新的技术之外,并增加对网页标准的支持,目前是互联网上最流行的排版引擎。

Gecko是套开放源代码的、以C++编写的页面渲染引擎。Gecko是跨平台的,能在Microsoft Windows、Linux和Mac OS X等主要操作系统上运行。它是最流行的页面渲染引擎之一,其流行程度仅次于Trident。

KHTML,是HTML页面渲染引擎之一,由KDE所开发。KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用。WebCore及WebKit引擎均是KHTML的衍生产品;WebKit是 Mac OS X v10.3及以上版本所包含的软件框架,WebKit是Mac OS X的Safari网页浏览器的基础。

Presto是一个由Opera Software开发的浏览器页面渲染引擎,应用于Opera 7.0~9.60版,它取代了旧版Opera中所使用的Elektra页面渲染引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。

Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,Java 编程语言的风格十分接近C++语言。微软推出的.NET平台以及模仿Java的C#语言正是与之竞争下的产物。

Tasman,是微软的Internet Explorer for Mac浏览器所使用的页面渲染引擎,也是为尝试支援W3C所制定的网页标准而设计的。在Mac版的Microsoft Office 2004中,电子邮件客户端Microsoft Entourage使用的就是Tasman页面渲染引擎。

渲染实现原理

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指 SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。

WebKit处理流程:

本文地址:http://www.nowamagic.net/librarys/veda/detail/634,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/634

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《C程序设计语言(第2版新版)》 克尼汉 (作者), 等 (作者, 译者), 徐宝文 (译者)

《C程序设计语言》(第2版新版)是由C语言的设计者Brian W.Kernighan和Dennis M.Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作。全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念,类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。

更多计算机宝库...