HTML5高级程序设计(完整版)内容简介
今天,大多数现代浏览器都已经支持HTML5。学习体验HTML5带给Web开发的便捷、快速和强大功能,是每一位Web设计和开发人员的当务之急。
本书由旧金山HTML5用户组创建人联合另两位资深Web开发专家共同打造,为读者清晰解读了HTML5规范的缘由、发展和现状,全面展示了如何使用 WebSocket、Geolocation、Web Storage、Canvas及音频视频等前所未有的新特性构建先进的Web应用,并以大量的示例涵盖全部HTML5 API。此外,还介绍了当今浏览器对HTML5特性的支持情况。
作者简介
Peter Lubbers Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。
Brian Albers Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJAXWorld博览会和Web JavaOne等国际性会议上做讲演。
Frank Salim Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。
目录
第1章 HTML5概述 1
1.1 HTML5发展史 1
1.2 关于2022年的那个神话 2
1.3 谁在开发HTML5 3
1.4 新的认识 3
1.4.1 兼容性和存在即合理 3
1.4.2 效率和用户优先 4
1.4.3 化繁为简 4
1.4.4 通用访问 5
1.5 无插件范式 5
1.6 HTML5的新功能 8
1.6.1 新的DOCTYPE和字符集 8
1.6.2 新元素和旧元素 9
1.6.3 语义化标记 9
1.6.4 使用Selectors API简化选取操作 15
1.6.5 JavaScript日志和调试 18
1.6.6 window.JSON 19
1.6.7 DOM Level 3 19
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19
1.7 小结 20
第2章 Canvas API 22
2.1 HTML5 Canvas概述 22
2.1.1 历史 22
2.1.2 canvas是什么 23
2.1.3 canvas坐标 23
2.1.4 什么情况下不用canvas 24
2.1.5 替代内容 24
2.1.6 CSS和canvas 24
2.1.7 浏览器对HTML5 Canvas的支持 25
2.2 使用HTML5 Canvas API 25
2.2.1 检测浏览器支持情况 25
2.2.2 在页面中加入canvas 26
2.2.3 变换 28
2.2.4 路径 30
2.2.5 描边样式 32
2.2.6 填充样式 33
2.2.7 填充矩形区域 34
2.2.8 绘制曲线 35
2.2.9 在canvas中插入图片 36
2.2.10 渐变 37
2.2.11 背景图 39
2.2.12 缩放canvas对象 41
2.2.13 Canvas变换 42
2.2.14 Canvas文本 43
2.2.15 应用阴影 45
2.2.16 像素数据 46
2.2.17 Canvas的安全机制 48
2.3 使用HTML5 Canvas创建应用 48
2.4 小结 52
第3章 音频和视频 53
3.1 HTML5 Audio和Video概述 53
3.1.1 视频容器 53
3.1.2 音频和视频编解码器 54
3.1.3 HTML5 Audio和Video的限制 55
3.1.4 audio元素和video元素的浏览器支持情况 56
3.2 使用HTML5 Audio和Video API 56
3.2.1 浏览器支持性检测 57
3.2.2 理解媒体元素 58
3.2.3 使用audio元素 62
3.2.4 使用video元素 63
3.2.5 进阶功能 68
3.3 小结 70
第4章 Geolocation API 72
4.1 位置信息 72
4.1.1 纬度和经度坐标 73
4.1.2 位置信息从何而来 73
4.1.3 IP地址地理定位数据 74
4.1.4 GPS地理定位数据 74
4.1.5 Wi-Fi地理定位数据 74
4.1.6 手机地理定位数据 75
4.1.7 用户自定义的地理定位数据 75
4.2 HTML5 Geolocation的浏览器支持情况 75
4.3 隐私 76
4.3.1 触发隐私保护机制 77
4.3.2 处理位置信息 78
4.4 使用HTML5 Geolocation API 78
4.4.1 浏览器支持性检查 78
4.4.2 位置请求 79
4.5 使用HTML5 Geolocation构建实时应用 83
4.5.1 编写HTML显示代码 84
4.5.2 处理Geolocation数据 85
4.5.3 最终代码 88
4.6 进阶功能 90
4.6.1 现在的状态是什么 91
4.6.2 在Goolge Map上显示“我在这里” 92
4.7 小结 93
第5章 Communication API 94
5.1 跨文档消息通信 94
5.1.1 理解源安全 96
5.1.2 跨文档消息通信的浏览器支持情况 97
5.1.3 使用postMessage API 97
5.1.4 使用postMessage API创建应用 98
5.2 XMLHttpRequest Level 2 103
5.2.1 跨源XMLHttpRequest 104
5.2.2 进度事件 105
5.2.3 XMLHttpRequest Level 2的浏览器支持情况 106
5.2.4 使用XMLHttpRequest API 106
5.2.5 创建XMLHttpRequest应用 107
5.3 进阶功能 111
5.3.1 结构化的数据 111
5.3.2 Framebusting 111
5.4 小结 112
第6章 WebSockets API 113
6.1 HTML5 WebSockets概述 113
6.1.1 实时和HTTP 113
6.1.2 解读HTML5 WebSockets 115
6.2 HTML5 WebSockets的浏览器支持情况 120
6.3 编写简单的Echo WebSocket服务器 120
6.4 使用HTML5 WebSockets API 126
6.4.1 浏览器支持情况检测 126
6.4.2 API的基本用法 127
6.5 创建HTML5 WebSockets应用程序 130
6.5.1 编写HTML文件 131
6.5.2 添加WebSocket代码 133
6.5.3 添加Geolocation代码 133
6.5.4 合并所有内容 134
6.5.5 最终代码 136
6.6 小结 138
第7章 Forms API 139
7.1 HTML5 Forms概述 139
7.1.1 HTML Forms与XForms 139
7.1.2 功能性表单 140
7.1.3 HTML5 Forms的浏览器支持情况 140
7.1.4 输入型控件目录 141
7.2 使用HTML5 Forms API 144
7.2.1 新的表单特性和函数 144
7.2.2 表单验证 147
7.2.3 验证反馈 151
7.3 构建HTML5 Forms应用 152
7.4 小结 157
第8章 Web Workers API 158
8.1 HTML5 Web Workers的浏览器支持情况 158
8.2 使用HTML5 Web Workers API 159
8.2.1 浏览器支持性检查 159
8.2.2 创建HTML5 Web Workers 160
8.2.3 多个JavaScript文件的加载与执行 160
8.2.4 与HTML5 Web Workers通信 160
8.3 编写主页 161
8.3.1 处理错误 161
8.3.2 HTML5 Web Workers 162
8.3.3 HTML5 Web Workers的嵌套使用 162
8.3.4 使用定时器 163
8.3.5 示例代码 163
8.4 构建HTML5 Web Workers应用 164
8.4.1 编写blur.js辅助脚本 165
8.4.2 编写blur.html应用页面 166
8.4.3 编写blurWorker.js 167
8.4.4 与Web Worker通信 168
8.4.5 运行程序 169
8.4.6 示例代码 170
8.5 小结 174
第9章 Web Storage API 175
9.1 HTML5 Web Storage概述 175
9.2 HTML5 Web Storage的浏览器支持情况 176
9.3 使用HTML5 Web Storage API 176
9.3.1 检查浏览器的支持性 176
9.3.2 设置和获取数据 178
9.3.3 封堵数据泄漏 179
9.3.4 localStorage与session-Storage 180
9.3.5 Web Storage API的其他特性和函数 180
9.3.6 更新Web Storage后的通信 182
9.3.7 探索Web Storage 183
9.4 构建HTML5 Web Storage应用 184
9.5 浏览器数据库存储展望 195
9.6 进阶功能 197
9.6.1 JSON对象的存储 198
9.6.2 共享窗口 198
9.7 小结 200
第10章 构建离线Web应用 201
10.1 HTML5离线Web应用概述 201
10.2 使用HTML5离线Web应用API 203
10.2.1 检查浏览器的支持情况 203
10.2.2 搭建简单的离线应用程序 203
10.2.3 支持离线行为 204
10.2.4 manifest文件 204
10.2.5 applicationCache API 205
10.3 使用HTML5离线Web应用构建应用 206
10.3.1 创建记录资源的manifest文件 208
10.3.2 创建构成界面的HTML和CSS 208
10.3.3 创建离线JavaScript 209
10.3.4 检查applicationCache的支持情况 210
10.3.5 为Update按钮添加处理函数 211
10.3.6 添加Geolocation跟踪代码 211
10.3.7 添加Storage功能代码 212
10.3.8 添加离线事件处理程序 212
10.4 小结 213
第11章 HTML5未来展望 214
11.1 HTML5的浏览器支持情况 214
11.2 HTML未来的发展 214
11.2.1 WebGL 215
11.2.2 设备 217
11.2.3 音频数据API 217
11.2.4 视频元素改进 218
11.2.5 触摸屏设备事件 218
11.2.6 P2P网络 220
11.2.7 最终方向 221
11.3 小结 221