了解浏览器如何工作—渲染引擎从基础设施上,我们还可以看到浏览器的亮点实际上在于渲染引擎(也称为排版引擎),许多页面兼容性问题的根源可以说就是来自于此。360浏览器HTML5得分较高(http://html5test.com/),用户界面和交互方式不同,内核仍然相同。好,让我们仔细看看渲染引擎内部。
渲染引擎简介
从字面上看,呈现引擎的职责是负责呈现从服务器返回的超文本标记语言、可扩展标记语言或图像以及其他资源,并将它们显示给最终用户。通过浏览器插件或浏览器扩展技术,它还可以以其他文档格式显示一些资源,如PDF。后面的文章将解释这项技术。本章重点描述渲染引擎的主要功能,即通过渲染引擎显示由CSS设计的HTML和图片结果。
如前所述,firefox、chrome、safarisafari包括两个渲染引擎。火狐使用壁虎,Safari和chrome(接下来是opera)使用网络工具包。Webkit是一个开源的渲染引擎,起初只能在linux平台上使用,但是苹果已经扩展和修改了它的源代码。它可以在mac和windows平台上运行,而一颗冉冉升起的新星chrome对其进行了扩展和推广,使其成为一个标准的、受欢迎的网页渲染引擎。有关webkit的详细介绍,请参见http://webkit.org/。
基本渲染过程
用户请求的资源通过浏览器的网络层到达渲染引擎后,渲染工作开始。每个渲染文档通常不超过8K个数据块,基本渲染过程如下图:所示
渲染引擎首先解析超文本标记语言文档,并将其转换成一个DOM树,这是第一步。接下来,不管它是内嵌的、外部的还是嵌入的,引入的CSS样式将被解析,并且将呈现另一个用于呈现DOM树的树——呈现树。渲染树包含具有显示属性(如颜色和大小)的矩形,这些矩形的顺序与显示顺序一致。然后,渲染树的每个节点被布局以确定其在屏幕上的显示位置。最后,遍历渲染树,用上一章提到的用户界面后端层绘制每个节点。
以上步骤是一个渐进的过程。为了改善用户体验,渲染引擎试图尽快向最终用户显示结果。它不会等到所有的超文本标记语言都被解析后才创建和布局渲染树。它将从网络层获取文档内容,并首先显示接收到的本地内容。
不同的渲染引擎有不同的渲染过程
以上仅介绍了渲染引擎的一般处理流程,不同的渲染引擎具体步骤可能会有所不同。以常见的网络工具包和壁虎为例。
首先是webkit的详细渲染过程:
火狐和其他浏览器:的壁虎渲染过程
从以上两幅图可以看出,虽然它们使用了不同的“技术术语”,但从图中可以看出,这两幅图的渲染过程是相似的。在这里,我们可以将具体的过程分开,接下来的四章将根据四个主要的渲染过程详细解释它们。
标签:
版权声明:本文著作权归原作者徐三seo所有,转载请注明出处,感谢!