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

简介: 原文地址:http://www.nowamagic.net/librarys/veda/detail/634     浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。

原文地址:http://www.nowamagic.net/librarys/veda/detail/634

 

  浏览器可以分为两部分,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处理流程:

 
adpics.aspx?source=kbh1983&sourcesuninfo
目录
相关文章
|
2月前
|
消息中间件 JavaScript 前端开发
前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)
前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)
|
3月前
|
前端开发 JavaScript 数据可视化
探索浏览器的内心世界:渲染机制的奥秘
探索浏览器的内心世界:渲染机制的奥秘
探索浏览器的内心世界:渲染机制的奥秘
|
3月前
|
消息中间件 前端开发 Java
【面试题】前端必修-浏览器的渲染原理
【面试题】前端必修-浏览器的渲染原理
|
7月前
|
Web App开发 存储 监控
浏览器基础原理-安全: 渲染进程-安全沙盒
浏览器基础原理-安全: 渲染进程-安全沙盒
37 0
|
9月前
|
开发框架 安全 .NET
您是否也有想在浏览器中实时的编辑代码并且渲染的想法?
您是否也有想在浏览器中实时的编辑代码并且渲染的想法?
52 0
|
9月前
|
Web App开发 自然语言处理 JavaScript
JS进阶(五)同步异步编程及浏览器的底层渲染机制
浏览器渲染机制 浏览器底层渲染机制 一个页面从服务器访问,拿到页面源代码之后做的事情是什么? 生成Dom树(DOM Tree) => 对HTML文件的处理 基于HTML获取的是流文件 (进制编码) 把进制编码编译为具体的字符 按照令牌TOKEN进行解析 (分词/断词) 生成具体的节点 (元素标签/文本节点....) 按照相互的依赖关系生成一个DOM树 (节点树)
133 0
|
11月前
|
存储 缓存 前端开发
|
11月前
|
Web App开发 JavaScript 算法
深入解析 EventLoop 和浏览器渲染、帧动画、空闲回调的关系
关于 Event Loop 的文章很多,但是有很多只是在讲「宏任务」、「微任务」
|
Web App开发 缓存 移动开发
浏览器渲染原理
浏览器渲染原理
浏览器渲染原理
|
Web App开发 监控 安全
浏览器原理 36 # 浏览上下文组:如何计算Chrome中渲染进程的个数?
浏览器原理 36 # 浏览上下文组:如何计算Chrome中渲染进程的个数?
88 0
浏览器原理 36 # 浏览上下文组:如何计算Chrome中渲染进程的个数?

热门文章

最新文章