网页的渲染机制

作者: yytyff | 来源:发表于2017-03-23 16:50 被阅读0次

浏览器的主要功能

浏览器的主要功能是将用户选择的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF、image及其他格式。用户用URI(Uniform Resource Identifier统一资源标识符)来指定所请求资源的位置,在网络一章有更多讨论。

浏览器的主要构成(High Level Structure)

浏览器的主要组件包括:
  1. 用户界面 - 包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分。
  2. 浏览器引擎 - 用来查询及操作渲染引擎的接口。
  3. 渲染引擎 - 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来。
  4. 网络 - 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作。
  5. UI后端 - 用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。
  6. JS解释器 - 用来解释执行JS代码。
  7. 数据存储 - 属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的客户端存储技术



图1:浏览器主要组件

渲染引擎简介

本文所讨论的浏览器——Firefox、Chrome和Safari是基于两种渲染引擎构建的,Firefox使用Geoko——Mozilla自主研发的渲染引擎,Safari和Chrome都使用webkit。
  Webkit是一款开源渲染引擎,它本来是为Linux平台研发的,后来由Apple移植到Mac及Windows上,相关内容请参考http://webkit.org
  渲染主流程(The main flow)
  渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成。
  下面是渲染引擎在取得内容之后的基本流程:
  解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树


图2:渲染引擎基本流程
  渲染引擎开始解析html,并将标签转化为内容树中的dom节点。接着,它解析外部CSS文件及style标签中的样式信息。这些样式信息以及html中的可见性指令将被用来构建另一棵树——render树。
  Render树由一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上。
  Render树构建好了之后,将会执行布局过程,它将确定每个节点在屏幕上的确切坐标。再下一步就是绘制,即遍历render树,并使用UI后端层绘制每个节点。
  值得注意的是,这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。

图3:webkit主流程

图4:Mozilla的Geoko渲染引擎主流程
  从图3和4中可以看出,尽管webkit和Gecko使用的术语稍有不同,他们的主要流程基本相同。Gecko称可见的格式化元素组成的树为frame树,每个元素都是一个frame,webkit则使用render树这个名词来命名由渲染对象组成的树。Webkit中元素的定位称为布局,而Gecko中称为回流。Webkit称利用dom节点及样式信息去构建render树的过程为attachment,Gecko在html和dom树之间附加了一层,这层称为内容接收器,相当制造dom元素的工厂。

相关文章

  • 网页渲染机制

    如题,本文将简介一下 浏览器对页面的渲染的过程。 一个网页里面主要包含三大块东西,Html/CSS/JavaScr...

  • 网页渲染机制

    简单+浅谈前端页面渲染机制。参考教程每天接触最多的某过于浏览器了。常见的浏览器chrome firefox ope...

  • 网页渲染机制

    浏览器基本结构 浏览器结构一般包括如下:1.用户界面(User Interface):用户所看到的界面,并且与之交...

  • 网页渲染机制

    渲染引擎及关键渲染路径(Critical Rendering Path) 通过网络模块加载到HTML文件后渲染引擎...

  • 网页渲染机制

    网页通过浏览器展示在我们面前,说网页的渲染机制就是说浏览器怎么渲染页面的。市面上浏览器主流浏览器chrome,fi...

  • 网页渲染机制

    CSS和JS在网页中的放置顺序 css 一般放在网页顶部的 head 标签内,用 link 进行引用 js 一般放...

  • 网页的渲染机制

    白屏和FOUC 白屏 由于一般ie或者Chrome的渲染机制是HTML-->Dom-->Css-->Cssom--...

  • 网页的渲染机制

    总体上说,网页的渲染过程要经历以下几个阶段: 解析 HTML 标签, 构建 DOM 树DOM是Document O...

  • 网页的渲染机制

    浏览器的渲染机制解析 解析HTML标签,构建DOM树 解析CSS标签,构建CSSOM树 把DOM和CSSOM组合成...

  • 网页的渲染机制

    CSS和JS在网页中的放置顺序是怎样的? CSS最好放入header中,即放在网页内容(html标签中包含的文字和...

网友评论

    本文标题:网页的渲染机制

    本文链接:https://www.haomeiwen.com/subject/rfrtottx.html