浏览器是如何工作的系列:渲染引擎

渲染引擎的功能就是渲染,在浏览器上显示请求的内容。
默认情况下,渲染引擎可以显示HTML和XML文档和图像。他也可以显示其他类型的插件(浏览器扩展)。例如显示PDF使用PDF浏览器插件。
我们将用一个特殊的章节来讨论插件和扩展。在这个章节中,我们重点来关注使用CSS样式渲染的HTML和图片。

一、渲染引擎:
我们的参考浏览器——FF、Chrome、Safrai都是建立在两个渲染引擎下。
FF使用Gecko——“自制”Mozilla渲染引擎,Safrai和Chrome都使用Webkit引擎。
Webkit是一个开源的渲染引擎,开始时适用于linux平台,但是经过Apple公司修改之后开始支持Mac和windows系统。
获取更多详细信息,参考:http://webkit.org

二、主要流程:
渲染引擎开始从网络层获取请求的文档内容。通常会在8K的块。
下图2.0是渲染引擎的基本流程:

渲染引擎开始解析HTML文档,并且把HTML标签转化为一个被叫做“内容树”的DOM树,它将
解析CSS样式,包括外部样式和内嵌样式。样式数据和HTML中的显示控制将共同用来创建另一棵树——渲染树。
渲染树包含带有颜色和尺寸等显示属性的矩形,这个矩形的顺序与显示顺序一致。

渲染树构建完成后就是“布局”处理。也就是确定每个节点在屏幕上的确切显示位置。 下一个步骤就是绘制,
遍历渲染树并用UI后端层将每一个节点绘制出来。

一定要理解,这是一个缓慢(渐进)的过程,为了更好的用户体验,渲染引擎将尽可能的把内容显示到屏幕上。
它不会等到所有的HTML被解析完才开始创建和布局渲染树。它会在处理后续内容的同时把已经处理过的内容显示出来。
图2.1是Webkit主要流程示例:

图2.2是Gecko主要流程示例:

从图2.1和图2.2可以看出虽然Webkit和Gecko使用术语稍微不同,主要流程还是基本相同的。
Gecko 里把格式化好的可视元素称做“帧树”(Frame tree)。每个元素就是一个帧(frame)。 Webkit 则使用”渲染树”这个术语,渲染树由”渲染对象”组成。
Webkit 里使用”layout”表示元素的布局,Gecko则称为”Reflow”。Webkit使用”Attachment”来连接DOM节点与可视化信息以构建渲染树。
一个非语义上的小差别是Gecko在HTML与DOM树之间有一个附加的层 ,称作”content sink”,是创建DOM对象的工厂。我们会讨论流程中的每一部分。

一、综合实战—使用极轴追踪方式绘制信号灯 实战目标:利用对象捕捉追踪极轴追踪功能创建信号灯图形 技术要点:结合两种追踪方式实现精确绘图,适用于工程制图中需要精确定位的场景 1. 切换至AutoCAD 操作步骤: 启动AutoCAD 2016软件 打开随书光盘中的素材文件 确认工作空间为"草图与注释"模式 2. 绘图设置 1)草图设置对话框 打开方式:通过"工具→绘图设置"菜单命令 功能定位:该对话框包含捕捉、追踪等核心绘图辅助功能设置 2)对象捕捉设置 关键配置: 启用对象捕捉(F3快捷键) 启用对象捕捉追踪(F11快捷键) 勾选端点、中心、圆心、象限点等常用捕捉模式 追踪原理:命令执行时悬停光标可显示追踪矢量,再次悬停可停止追踪 3)极轴追踪设置 参数设置: 启用极轴追踪功能 设置角度增量为45度 确认后退出对话框 3. 绘制信号灯 1)绘制圆形 执行命令:"绘图→圆→圆心、半径"命令 绘制过程: 使用对象捕捉追踪定位矩形中心作为圆心 输入半径值30并按Enter确认 通过象限点捕捉确保圆形位置准确 2)绘制直线 操作要点: 选择"绘图→直线"命令 捕捉矩形上边中点作为起点 捕捉圆的上象限点作为终点 按Enter结束当前直线命令 重复技巧: 按Enter可重复最近使用的直线命令 通过圆心捕捉极轴追踪绘制放射状直线 最终形成完整的信号灯指示图案 3)完成绘制 验证要点: 检查所有直线是否准确连接圆心象限点 确认极轴追踪的45度增量是否体现 保存绘图文件(快捷键Ctrl+S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值