没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这是一篇全面介绍 Webkit 和 Gecko内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据,并花了很多时间来研读网络浏览器的源代码。她写道: 在 IE 占据 90%市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。呃,里面只有数以百万行计的 C++ 代码... 塔利在她的网站上公布了自己的研究成果,但是我们觉得它值得让更多的人来了解,所以我们在此重新整理并公布。 作为一名网络开发人员,学习浏览器的内部工作原理将有助于您作出更明智的决策,并理解那些最佳开发实践的个中缘由。尽管这是一篇相当长的文档,但是我们建议您花些时间来仔细阅读;读完之后,您肯定会觉得所费不虚。 保罗·爱丽诗 (Paul Irish),Chrome 浏览器开发人员事务部
资源推荐
资源详情
资源评论
浏览器的作原理:新式络浏览器幕后揭秘
By Tali Garsiel and Paul Irish
已发布: 5th, 2011
Comments: 132
这是篇全介绍 WebKit 和 Gecko 内部操作的章,是以列开发员塔利·加
希尔量研究的成果。在过去的年中,她查阅了所有公开发布的关于浏览器内部机
制的数据(请参资源),并花了很多时间来研读络浏览器的源代码。她写道:
塔利在她的站上公布了的研究成果,但是我们觉得它值得让更多的来了解,
所以我们在此重新整理并公布。
作为名络开发员,学习浏览器的内部作原理将有助于您作出更明智的决策,
并理解那些最佳开发实践的个中缘由。尽管这是篇相当的档,但是我们建议您
花些时间来仔细阅读;读完之后,您肯定会觉得所费不虚。
保罗
·
爱丽诗
(Paul Irish)
,
Chrome
浏览器开发员事务部
络浏览器很可能是使最的软件。在这篇章中,我将会介绍它们的幕后
作原理。我们会了解到,从您在地址栏输 google.com 直到您在浏览器屏幕上看到
Google 的整个过程中都发了些什么。
1.
简介
1.
我们要讨论的浏览器
序
在
IE
占据
90%
市场份额的年代,我们除了把浏览器当成个
“
箱
”
,什么也做不
了。但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开
神秘的纱,探络浏览器的内幕了。呃,只有数以百万计的
C++
代
码
...
简介
录
2. 浏览器的主要功能
3. 浏览器的层结构
2. 呈现引擎
1. 呈现引擎
2. 主流程
3. 主流程例
3. 解析和 DOM 树构建
1. 解析 - 综述
1. 语法
2. 解析器和词法分析器的组合
3. 翻译
4. 解析例
5. 词汇和语法的正式定义
6. 解析器类型
7. 动成解析器
2. HTML 解析器
1. HTML 语法定义
2. 与上下关的语法
3. HTML DTD
4. DOM
5. 解析算法
6. 标记化算法
7. 树构建算法
8. 解析结束后的操作
9. 浏览器的容错机制
3. CSS 解析
1. WebKit CSS 解析器
4. 处理脚本和样式表的顺序
1. 脚本
2. 预解析
3. 样式表
4. 呈现树构建
1. 呈现树和 DOM 树的关系
2. 构建呈现树的流程
3. 样式计算
1. 共享样式数据
2. Firefox 规则树
1. 结构划分
2. 使规则树计算样式上下
3. 对规则进处理以简化匹配
4. 以正确的层叠顺序应规则
1. 样式表层叠顺序
2. 特异性
3. 规则排序
4. 渐进式处理
5. 布局
1. Dirty 位系统
2. 全局布局和增量布局
3. 异步布局和同步布局
4. 优化
5. 布局处理
6. 宽度计算
7. 换
6. 绘制
1. 全局绘制和增量绘制
2. 绘制顺序
3. Firefox 显列表
4. WebKit 矩形存储
7. 动态变化
8. 呈现引擎的线程
1. 事件循环
9. CSS2 可视化模型
1. 画布
2. CSS 框模型
3. 定位案
4. 框类型
5. 定位
1. 相对定位
2. 浮动定位
3. 绝对定位和固定定位
6. 分层展
10. 资源
前使的主流浏览器有五个:Internet Explorer、Firefox、Safari、Chrome 浏览器和
Opera。本中以开放源代码浏览器为例,即 Firefox、Chrome 浏览器和 Safari(部分
开源)。根据 StatCounter 浏览器统计数据,前(2011 年 8 )Firefox、Safari 和
我们要讨论的浏览器
Chrome 浏览器的总市场占有率将近 60%。由此可,如今开放源代码浏览器在浏览
器市场中占据了常坚实的部分。
浏览器的主要功能就是向服务器发出请求,在浏览器窗中展您选择的络资源。
这所说的资源般是指 HTML 档,也可以是 PDF、图或其他的类型。资源的位
置由户使 URI(统资源标符)指定。
浏览器解释并显 HTML 件的式是在 HTML 和 CSS 规范中指定的。这些规范由
络标准化组织 W3C(万维联盟)进维护。
多年以来,各浏览器都没有完全遵从这些规范,同时还在开发独有的扩展程序,
这给络开发员带来了严重的兼容性问题。如今,多数的浏览器都是或多或少地
遵从规范。
浏览器的户界有很多彼此相同的元素,其中包括:
来输 URI 的地址栏
前进和后退按钮
书签设置选项
于刷新和停加载当前档的刷新和停按钮
于返回主的主按钮
奇怪的是,浏览器的户界并没有任何正式的规范,这是多年来的最佳实践然发
展以及彼此之间相互模仿的结果。HTML5 也没有定义浏览器必须具有的户界元
素,但列出了些通的元素,例如地址栏、状态栏和具栏等。当然,各浏览器也
可以有独特的功能,如 Firefox 的下载管理器。
浏览器的主要组件为 (1.1):
1.
户界 - 包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗显的
您请求的外,其他显的各个部分都属于户界。
2.
浏览器引擎 - 在户界和呈现引擎之间传送指令。
3.
呈现引擎 - 负责显请求的内容。如果请求的内容是 HTML,它就负责解析
HTML 和 CSS 内容,并将解析后的内容显在屏幕上。
4.
络 - 于络调,如 HTTP 请求。其接与平台关,并为所有平台提供
底层实现。
5.
户界后端 - 于绘制基本的窗部件,如组合框和窗。其公开了与平
台关的通接,在底层使操作系统的户界法。
浏览器的主要功能
浏览器的层结构
6. JavaScript 解释器。于解析和执 JavaScript 代码。
7. 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。新的
HTML 规范 (HTML5) 定义了“络数据库”,这是个完整(但是轻便)的浏览器
内数据库。
图:浏览器的主要组件。
值得注意的是,和多数浏览器不同,Chrome 浏览器的每个标签都分别对应个呈
现引擎实例。每个标签都是个独的进程。
呈现引擎的作嘛...当然就是“呈现”了,也就是在浏览器的屏幕上显请求的内容。
默认情况下,呈现引擎可显 HTML 和 XML 档与图。通过插件(或浏览器扩展程
序),还可以显其他类型的内容;例如,使 PDF 查看器插件就能显 PDF
档。但是在本章中,我们将集中介绍其主要途:显使 CSS 格式化的 HTML 内容
和图。
本所讨论的浏览器(Firefox、Chrome 浏览器和 Safari)是基于两种呈现引擎构建
的。Firefox 使的是 Gecko,这是 Mozilla 公司“制”的呈现引擎。 Safari 和
Chrome 浏览器使的都是 WebKit。
WebKit 是种开放源代码呈现引擎,起初于 Linux 平台,随后由 Apple 公司进修
呈现引擎
呈现引擎
剩余48页未读,继续阅读
资源评论
- vcminusminus2019-04-04很好,感谢分享!英文原版:https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
我在西塘等ni
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- springboot203医疗挂号管理系统.zip
- springboot206基于SpringBoot的农商对接系统的设计与实现.zip
- springboot208基于springboot物流管理系统.zip
- springboot207基于springboot的实习管理系统.zip
- springboot209基于web的大学生一体化服务平台的设计与实现.zip
- springboot211基于springboot医疗报销系统的设计与实现.zip
- springboot210基于Springboot开发的精简博客系统的设计与实现.zip
- 网络安全 - 渗透测试工具 - SecureGen - 参数字典生成(Web应用程序+漏洞扫描+自动化+安全评估)
- springboot213大学生心理健康管理系统的设计与实现.zip
- springboot212球队训练信息管理系统.zip
- springboot214基于springboot的多媒体素材库的开发与应用.zip
- springboot217志同道合交友网站.zip
- springboot216新闻资讯系统.zip
- springboot215基于springboot技术的美食烹饪互动平台的设计与实现.zip
- springboot218基于SpringBoot的医院药品管理系统设计与实现.zip
- springboot220基于SpringBoot+Vue的周边游平台个人管理模块的设计与实现.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功