您好,欢迎光临有路网!
WebKit技术内幕
QQ咨询:
有路璐璐:

WebKit技术内幕

  • 作者:朱永盛
  • 出版社:电子工业出版社
  • ISBN:9787121229640
  • 出版日期:2014年06月01日
  • 页数:456
  • 定价:¥79.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    《WebKit技术内幕》从炙手可热的HTML5 的基础知识入手,**阐述目前应用*广的渲染引擎项目——WebKit。不仅着眼于系统描述WebKit 内部渲染HTML 网页的原理,并基于Chromium 的实现,阐明渲染引擎如何**地利用硬件和*新技术,而且试图通过对原理的剖析,向读者传授实现高性能Web 前端开发所需的宝贵经验。
    《WebKit技术内幕》首先从总体上描述WebKit 架构和组成,而后涵盖Web 前端和所有与之相关的重要技术,包括网络、资源加载、HTML 和CSS 解析、渲染树、布局、硬件加速、JavaScript 引擎、多媒体、移动支持、插件机制、**机制、调试和*新的Web 平台等。对于每一项技术,在介绍基本含义之上,详细分析WebKit 内部的工作原理,进而从实践角度道出由此带来的Web 前端开发启示。 WebKit技术内幕_朱永盛_电子工业出版社_
    文章节选
    随着HTML5的快速发展和网络时代的到来,Web的接入口——浏览器越来越重要,而作为浏览器的内核——渲染引擎也变成了热门话题。自笔者接触HTML5技术和浏览器以来,深深地被这一包含众多非凡技术的新领域所吸引,并由此产生了很多疑问,为此,我开始了漫长的学习和研究WebKit(及Blink)渲染引擎和Chromium浏览器的征程。虽然WebKit项目本身非常复杂,但是其简单的代码结构、清晰的逻辑给我留下了深刻的印象,因为在这些复杂技术的背后,竟然也可以使用良好的设计去解决技术的复杂性。而基于WebKit的Chromium项目更是将众多大胆的新技术引入到了浏览器领域,让人耳目一新。
    WebKit是一个非常成功的项目,它不仅仅是个渲染引擎,而且成功地推动了网络的发展。基于WebKit渲染引擎的浏览器项目Chromium,更是成为率先支持HTML5功能和创新新功能的标杆。要完整理解一个Web渲染引擎和浏览器并不容易,因为它们的确包含了众多复杂的功能。据笔者的统计,WebKit项目和Chromium项目(不包括该项目依赖的众多第三方项目)的代码量都在500万行以上,而这些代码很多并没有完善的文档,所以理解这些技术背后的工作原理还是非常困难的。
    随着学习的深入,笔者发现目前对于整个渲染引擎的分析和文档化还处于一个缺失的状态。同时,因为渲染引擎和浏览器包含了太多的技术,让人有点应接不暇的感觉。虽然WebKit项目代码结构简单,但是由于文档的缺失,爱好者对于每一项新技术,也经常有不知从何下手的感觉。为此,笔者结合自身的理解,通过这本书系统性地分析这一领域的众多技术,希望能帮助读者快速度过迷茫的时期。
    本书的读者
    本书主要是为Web爱好者准备的一本书,主要针对Web前端***、浏览器***、Web平台***和其他一切对HTML5技术、WebKit渲染引擎和Chromium浏览器的工作原理感兴趣的读者。对于Web前端***而言,笔者一直认为,如果使用HTML5技术来编写网页或者Web应用,了解其背后的工作原理是写出**代码的有效捷径。就像***想编写**C++代码,需要理解C++编译器背后的原理一样,因为只有这样,***才能够编写出高性能的代码。对于浏览器***来说,本书着重介绍现在非常热门的WebKit(及Blink)渲染引擎和非常先进的Chromium浏览器,通过解释其内部的工作机制和原理,让***可以很快理解这一切的前因后果。对于其他的广大爱好者来说,HTML5技术才刚刚开始,未来的发展还将继续,了解这一技术有助于扩展视野,而且理解浏览器对各种技术的应用和设计,对于大家理解很多其他领域的技术也有很强的启发作用。
    因为本书的介绍主要是基于对WebKit和Chromium内部原理的解释来进行,而这些项目也都是基于C/C++代码来编写,所以读者*好对该语言有一些了解。不过,如果不了解它也没有太大的关系,只要对面向对象编程的思想有所了解,阅读本书也没有太大的障碍。同时,本书不是一本介绍编写HTML/JavaScript代码的书,所以,不会对HTML的编程做过多详细的解释,而是以一种简单的方式描述一些基础性常识。
    本书的组织
    本书基本的写作方式是力求在介绍HTML5技术的基础上,通过对W3C组织制定的规范的解释,进一步解读WebKit渲染引擎和Chromium浏览器是如何设计出**的架构来支持这些HTML5技术规范的,其中着重剖析内部的框架和工作原理。在很多情况下,笔者也试图通过一些开发和工作实践来帮助理解这些框架和实现背后的机制和原理。
    如果想了解整个渲染引擎的原理,光靠渲染引擎本身不足以说明所有机制,所以本书自始至终都是结合WebKit项目和基于WebKit的Chromium浏览器项目来描述其工作原理的,因为WebKit项目本身不是一个浏览器,而Chromium浏览器的设计和架构可以帮助读者完整理解网页的渲染过程和现代HTML5新技术是如何获得支持的,这一过程的确非常精彩。
    为了理解HTML5新技术和浏览器的工作原理,本书着重带来以下方面的详细分析,包括HTML5技术分析、渲染引擎和浏览器介绍、WebKit渲染引擎框架、Chromium框架和进程架构、网页和网页结构、渲染过程、网络栈、HTML语言、DOM、CSS样式、布局计算、渲染基础、**硬件加速机制、JavaScript引擎、插件和扩展、多媒体、移动领域、**机制、调试机制、发展趋势和Web平台等众多热门技术和前沿性话题。笔者希望将HTML5中绝大多数的重要技术都展现出来,让读者可以对这个领域的众多技术有个总体把握并对主要技术的前因后果有较为深入的理解。
    本书引用的参考资料都是笔者多年来研究的对象,对于笔者理解HTML5技术、前端开发技术、渲染引擎和浏览器技术起了非常重要的作用,一些论题可能在本书中介绍得不够完善,读者可以参考这些资料,做进一步的学习和研究。
    本书是一个讲解内部原理的书,涉及众多的技术,特别是深入技术内部工作机制的地方,由于这些内容非常复杂,而且是根据笔者个人的理解加以分析,所以很多时候可能存在理解上的偏差或者错误。如果有什么不妥之处,还望广大读者谅解并给予指导,或者将意见发送到我的邮箱:yongsheng@chromium.org。
    致谢
    感谢电子工业出版社的张春雨、王新宇、尚冰雪等编辑,自始至终给予笔者的强有力的帮助和支持。特别感谢我在英特尔亚太研发有限公司的同事,包括但是不限于闵洪波、王兴楠、余枝强、刘守群、朱俊敏、王视鎏、胡宁馨、高纯、尹立、顾扬、冯海涛、霍海涛等,他们同我一起探讨了很多关于HTML5、WebKit和Chromium方面的话题,让我受益匪浅。
    *后要感谢我的太太、女儿和父母,在写作的大半年时间里给予了笔者很多支持。因为本书是在繁忙的工作之余利用琐碎的业余时间来完成的,所以,如果没有家人提供的良好环境,我是没有办法完成这本书的。特别是我的小女儿经常过来“光顾”和“巡视”我的写作,并给予一些特别的“惊喜”和“礼物”,让我在写作之余多了一份乐趣。
    朱永盛
    2014年2月1日
    目录
    第1章 浏览器和浏览器内核 1
    1.1 浏览器 1
    1.1.1 浏览器简介 1
    1.1.2 浏览器特性 4
    1.1.3 HTML 5
    1.1.4 用户代理和浏览器行为 8
    1.1.5 实践:浏览器用户代理 9
    1.2 浏览器内核及特性 11
    1.2.1 内核和主流内核 11
    1.2.2 内核特征 12
    1.3 WebKit内核 15
    1.3.1 WebKit介绍 15
    1.3.2 WebKit和WebKit2 16
    1.3.3 Chromium内核:Blink 18
    1.4 本书结构 18
    第2章 HTML网页和结构 21
    2.1 网页构成 21
    2.1.1 基本元素和树状结构 21
    2.1.2 HTML5新特性 23
    2.2 网页结构 25
    2.2.1 框结构 25
    2.2.2 层次结构 27
    2.2.3 实践:理解网页结构 29
    2.3 WebKit的网页渲染过程 31
    2.3.1 加载和渲染 31
    2.3.2 WebKit的渲染过程 32
    2.3.3 实践:从网页到可视化结果 35
    第3章 WebKit架构和模块 39
    3.1 WebKit架构及模块 39
    3.1.1 获取WebKit 39
    3.1.2 WebKit架构 40
    3.1.3 WebKit源代码结构 43
    3.2 基于Blink的Chromium浏览器结构 45
    3.2.1 Chromium浏览器的架构及模块 45
    3.2.2 实践:从Chromium代码结构和运行状态理解现代浏览器 56
    3.3 WebKit2 61
    3.3.1 WebKit2架构及模块 61
    3.3.2 WebKit和WebKit2嵌入式接口 62
    3.3.3 比较WebKit2和Chromium的多进程模型以及接口 63
    第4章 资源加载和网络栈 65
    4.1 WebKit资源加载机制 65
    4.1.1 资源 65
    4.1.2 资源缓存 67
    4.1.3 资源加载器 68
    4.1.4 过程 69
    4.1.5 资源的生命周期 70
    4.1.6 实践:资源的缓存 71
    4.2 Chromium多进程资源加载 74
    4.2.1 多进程 74
    4.2.2 工作方式和资源共享 76
    4.3 网络栈 78
    4.3.1 WebKit的网络设施 78
    4.3.2 Chromium网络栈 78
    4.3.3 磁盘本地缓存 84
    4.3.4 Cookie机制 88
    4.3.5 **机制 90
    4.3.6 高性能网络栈 90
    4.3.7 实践:Chromium网络工具和信息 97
    4.4 实践:**的资源使用策略 99
    4.4.1 DNS和TCP连接 99
    4.4.2 资源的数量 99
    4.4.3 资源的数据量 100
    第5章 HTML解释器和DOM模型 101
    5.1 DOM模型 101
    5.1.1 DOM标准 101
    5.1.2 DOM树 104
    5.2 HTML解释器 107
    5.2.1 解释过程 107
    5.2.2 词法分析 110
    5.2.3 XSSAuditor验证词语 111
    5.2.4 词语到节点 111
    5.2.5 节点到DOM树 113
    5.2.6 网页基础设施 114
    5.2.7 线程化的解释器 117
    5.2.8 JavaScript的执行 119
    5.2.9 实践:理解DOM树 120
    5.3 DOM的事件机制 121
    5.3.1 事件的工作过程 122
    5.3.2 WebKit的事件处理机制 123
    5.3.3 实践:事件的传递机制 125
    5.4 影子(Shadow)DOM 127
    5.4.1 什么是影子DOM 127
    5.4.2 WebKit的支持 128
    5.4.3 实践:使用影子DOM 129
    第6章 CSS解释器和样式布局 131
    6.1 CSS基本功能 131
    6.1.1 简介 131
    6.1.2 样式规则 134
    6.1.3 选择器 135
    6.1.4 框模型 136
    6.1.5 包含块(Containing Block)模型 139
    6.1.6 CSS样式属性 139
    6.1.7 CSSOM(CSS Object Model) 140
    6.1.8 实践:理解CSSOM和选择器 141
    6.2 CSS解释器和规则匹配 143
    6.2.1 样式的WebKit表示类 143
    6.2.2 解释过程 146
    6.2.3 样式规则匹配 148
    6.2.4 实践:样式匹配 149
    6.2.5 JavaScript设置样式 151
    6.3 WebKit布局 152
    6.3.1 基础 152
    6.3.2 布局计算 153
    6.3.3 布局测试 155
    第7章 渲染基础 157
    7.1 RenderObject树 157
    7.1.1 RenderObject基础类 157
    7.1.2 RenderObject树 162
    7.2 网页层次和RenderLayer树 163
    7.2.1 层次和RenderLayer对象 163
    7.2.2 构建RenderLayer树 165
    7.3 渲染方式 167
    7.3.1 绘图上下文(GraphicsContext) 167
    7.3.2 渲染方式 169
    7.4 WebKit软件渲染技术 172
    7.4.1 软件渲染过程 172
    7.4.2 Chromium的多进程软件渲染技术 177
    7.4.3 实践:软件渲染过程 180
    第8章 硬件加速机制 183
    8.1 硬件加速基础 183
    8.1.1 概念 183
    8.1.2 WebKit硬件加速设施 185
    8.1.3 硬件渲染过程 189
    8.1.4 3D图形上下文 193
    8.2 Chromium的硬件加速机制 194
    8.2.1 GraphicsLayer的支持 194
    8.2.2 框架 196
    8.2.3 命令缓冲区 200
    8.2.4 Chromium合成器(Chromium Compositor) 202
    8.2.5 实践:减少重绘 213
    8.3 其他硬件加速模块 216
    8.3.1 2D图形的硬件加速机制 216
    8.3.2 WebGL 223
    8.3.3 CSS 3D变形 228
    8.3.4 其他 229
    8.3.5 实践:Chromium的支持 229
    第9章 JavaScript引擎 231
    9.1 概述 231
    9.1.1 JavaScript语言 231
    9.1.2 JavaScript引擎 238
    9.1.3 JavaScript引擎和渲染引擎 241
    9.2 V8引擎 242
    9.2.1 基础 242
    9.2.2 工作原理 246
    9.2.3 绑定和扩展 258
    9.3 JavaScriptCore引擎 259
    9.3.1 原理 259
    9.3.2 架构和模块 259
    9.3.4 内存管理 265
    9.3.5 绑定 266
    9.3.6 比较JavaScriptCore和V8 266
    9.4 实践——**的JavaScript代码 266
    9.4.1 编程方式 266
    9.4.2 例子 268
    9.4.3 未来 271
    第10章 插件和JavaScript扩展 273
    10.1 NPAPI插件 274
    10.1.1 NPAPI简介 274
    10.1.2 WebKit和Chromium的实现 275
    10.2 Chromium PPAPI插件 284
    10.2.1 原理 284
    10.2.2 结构和接口 285
    10.2.3 工作过程 288
    10.2.4 Native Client 294
    10.3 JavaScript引擎的扩展机制 297
    10.3.1 混合编程 297
    10.3.2 JavaScript扩展机制 299
    10.4 Chromium扩展机制 303
    10.4.1 原理 303
    10.4.2 基本设施 306
    10.4.3 消息传递机制 309
    第11章 多媒体 311
    11.1 HTML5的多媒体支持 311
    11.2 视频 313
    11.2.1 HTML5视频 313
    11.2.2 WebKit基础设施 315
    11.2.3 Chromium视频机制 317
    11.2.4 字幕 328
    11.2.5 视频扩展 330
    11.3 音频 331
    11.3.1 音频元素 331
    11.3.2 Web Audio 334
    11.3.3 MIDI和Web MIDI 336
    11.3.4 Web Speech 337
    11.4 WebRTC 339
    11.4.1 历史 339
    11.4.2 原理和规范 341
    11.4.3 实践——一个WebRTC例子 342
    11.4.4 WebKit和Chromium的实现 345
    第12章 **机制 353
    12.1 网页**模型 353
    12.1.1 **模型基础 353
    12.1.2 WebKit的实现 363
    12.2 沙箱模型 366
    12.2.1 原理 366
    12.2.2 实现机制 367
    第13章 移动WebKit 373
    13.1 触控和手势事件 373
    13.1.1 HTML5规范 373
    13.1.2 工作原理 377
    13.1.3 启示和实践 381
    13.2 移动化用户界面 382
    13.3 其他机制 384
    13.3.1 新渲染机制 384
    13.3.2 其他机制 387
    第14章 调试机制 389
    14.1 Web Inspector 389
    14.1.1 基本原理 389
    14.1.2 协议 391
    14.1.3 WebKit内部机制 395
    14.1.4 Chromium***工具 398
    14.1.5 远程调试 400
    14.1.6 Chromium Tracing机制 402
    14.2 实践——基础和性能调试 404
    14.2.1 基础调试 404
    14.2.2 性能调试 408
    第15章 Web前端的未来 411
    15.1 趋势 411
    15.2 嵌入式应用模式 414
    15.2.1 嵌入式模式 414
    15.2.2 CEF 414
    15.2.3 Android WebView 417
    15.3 Web应用和Web运行环境 419
    15.3.1 Web应用 419
    15.3.2 Web运行环境 421
    15.4 Cordova项目 423
    15.5 Crosswalk项目 425
    15.6 Chromium OS和Chrome的Web应用 429
    15.6.1 基本原理 429
    15.6.2 其他Web操作系统 431
    参考资料 435
    编辑推荐语
    WebKit作为支持HTML5的主流渲染引擎,近年来备受前端***关注。本书将揭示WebKit总体架构、网页渲染原理,及其对硬件与*新技术的**利用,以及高性能Web实践等,内容涉及Web前端所有重要话题。
    √本书作者为Chromium贡献者,及开源项目Crosswalk初创人。
    √每一主题均涵盖基本定义、内部原理及其对Web前端开发实践的启示。
    √剖析WebKit如何对HTML5诸项技术提供支持,包括:网络、CSS和布局、2D/3D图形图像、硬件加速渲染、JavaScript引擎、多媒体、混合编程、**机制等。
    √详解Web前端领域所涉及的各种性能瓶颈,以及针对问题的应对之策。
    √结合目前*热门的移动技术,分析WebKit在移动领域的发展,以及移动领域为*前沿Web应用与Web运行环境带来的机遇。
    √探讨Web前端未来的可能发展方向,包括向不同应用场景和应用领域的渗透。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外