图灵程序设计丛书:HTML5程序设计.pdf

图灵程序设计丛书:HTML5程序设计.pdf
 

书籍描述

编辑推荐
《图灵程序设计丛书:HTML5程序设计(第2版)》面向有一定经验的Web应用开发人员,对HTML55及未来Web应用技术发展有浓厚兴趣的读者也可以学习参考。

作者简介
作者:(荷兰)柳伯斯(Peter Lubbers) (美国)阿伯斯(Brian Albers) (美国)萨利姆(Frank Salim) 译者:柳靖 李杰 刘淼

柳伯斯(Peter Lubbers), Kaazing文档培训主管,旧金山HTML5用户组创建人。作为HTML5和WebSocket的狂热爱好者,Peter常常在国际大会上发言,还在全球范围内开展HTML5的技术培训。在加盟Kaazing前,Peter在Oracle担任了近十年的资深信息架构师,获得过两项软件专利。
阿伯斯(Brian Albers),Kaazing研发中心副总裁。他有数十年的Web开发经验,曾在Oracle担任高级开发经理。Brian是一位讲演常客,经常在Web 2.0博览会、AJMXWorld博览会和Web JavaOne等国际性会议上做讲演。
萨利姆(Frank Salim),Kaazing的元老级工程师,曾参与过WebSocket网关和客户端策略项目。他毕业于波莫纳学院计算机专业,除了编程之外,还喜欢阅读、绘画和轮滑。

目录
第1章 HTML5概述
1.1 HTML5发展史
1.2 关于2022年的那个神话
1.3 谁在开发HTML5
1.4 新的认识
1.4.1 兼容性和存在即合理
1.4.2 效率和用户优先
1.4.3 化繁为简
1.4.4 通用访问
1.5 无插件范式
1.6 HTML5的新功能
1.6.1 新的DOCTYPE和字符集
1.6.2 新元素和旧元素
1.6.3 语义化标记
1.6.4 使用Selectors API简化选取操作
1.6.5 JavaScript日志和调试
1.6.6 window.JSON
1.6.7 DOM Level 3
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎
1.7 小结
第2章 Canvas API
2.1 HTML5 Canvas概述
2.1.1历史
2.1.2 canvas是什么
2.1.3 canvas坐标
2.1.4什么情况下不用canvas
2.1.5替代内容
2.1.6 CSS和canvas
2.1.7浏览器对HTML5 Canvas的支持情况
2.2 使用HTML5 Canvas API
2.2.1检测浏览器支持情况
2.2.2在页面中加入canvas
2.2.3变换
2.2.4路径
2.2.5描边样式
2.2.6填充样式
2.2.7填充矩形区域
2.2.8绘制曲线
2.2.9在canvas中插入图片
2.2.10渐变
2.2.11背景图
2.2.12缩放canvas对象
2.2.13 Canvas变换
2.2.14 Canvas文本
2.2.15应用阴影
2.2.16像素数据
2.2.17 Canvas的安全机制
2.3使用HTML5 Canvas创建应用
2.3.1进阶功能之全页玻璃窗
2.3.2进阶功能之为Canvas动画计时
2.4小结
第3章SVG
3.1 SVG概述
3.1.1历史
3.1.2理解SVG
3.1.3可缩放图形
3.1.4使用SVG创建2D图形
3.1.5在页面中添加SVG
3.1.6简单的形状
3.1.7变换SVG元素
3.1.8复用内容
3.1.9图案和渐变
3.1.10 SVG路径
3.1.11使用SVG文本
3.1.12组合场景
3.2使用SVG创建交互式应用
3.2.1添加树
3.2.2添加updateTrees函数
3.2.3添加removeTree函数
3.2.4添加CSS样式
3.2.5最终代码
3.3小结
第4章音频和视频
4.1 HTML5 Audio和Video概述
4.1.1视频容器
4.1.2音频和视频编解码器
4.1.3 HTML5 Audio和Video的 限制
4.1.4 audio元素和video元素的浏览器支持情况
4.2使用HTML5 Audio和Video API
4.2.1浏览器支持性检测
4.2.2可访问性
4.2.3理解媒体元素
4.2.4使用audio元素
4.2.5使用video元素
4.2.6进阶功能
4.3小结
第5章 GeoIocation API
5.1位置信息
5.1.1纬度和经度坐标
5.1.2位置信息从何而来
5.1.3 IP地址地理定位数据
5.1.4 GPS地理定位数据
5.1.5 Wi-Fi地理定位数据
5.1.6手机地理定位数据
5.1.7用户自定义的地理定位数据
5.2 HTML5 Geolocation的浏览器支持情况
5.3隐私
5.3.1触发隐私保护机制
5.3.2处理位置信息
5.4使用HTML5 Geolocation API
5.4.1浏览器支持性检查
5.4.2位置请求
5.5使用HTML5 Geolocation构建应用
5.5.1编写HTML显示代码
5.5.2处理Geolocation数据
5.5.3最终代码
5.6进阶功能
5.6.1现在的状态是什么
5.6.2在Goolge Map上显示“我在这里”
5.7小结
第6章 Communication API
6.1跨文档消息通信
6.1.1理解源安全
6.1.2跨文档消息通信的浏览器支持情况
6.1.3使用postMessage API
6.1.4使用postMessage API创建应用
6.2 XMLHttpRequest Level 2
6.2.1跨源XMLHttpRequest
6.2.2进度事件
6.2.3 HTML5XMLHttpRequest Level 2的浏览器支持情况
6.2.4使用XMLHttpRequest API
6.2.5创建XMLHttpRequest应用
6.3进阶功能
6.3.1结构化的数据
6.3.2 FramebUSting
6.4小结
第7章WebSockets API
7.1 WebSockets概述
7.1.1实时和HTTP
7.1.2解读WebSockets
7.2编写简单的Echo WebSocket服务器
7.3使用HTML5 WebSockets API
7.3.1浏览器支持情况检测
7.3.2 API的基本用法
7.4创建HTML5 WebSockets应用程序
7.4.1编写HTML文件
7.4.2添加WebSocket代码
7.4.3添加Geolocation代码
7.4.4合并所有内容
7.4.5最终代码
7.5小结
第8章Forms API
8.1 HTML5 Forms概述
8.1.1 HTML Forms与XForms
8.1.2功能性表单
8.1.3 HTML5 Forms的浏览器支持情况
8.1.4输入型控件目录
8.2使用HTML5 Forms API
8.2.1新的表单特性和函数
8.2.2表单验证
8.2.3验证反馈
8.3构建HTML5 Forms应用
8.4小结
第9章拖放
9.1 Web拖放发展史
9.2 HTML5拖放概述
9.2.1蓝图
9.2.2需要记住的事件
9.2.3设置元素可拖动
9.2.4传输和控制
9.3构建拖放应用
9.4拖放文件
9.5进阶功能
9.6小结
第10章Web Workers API
10.1 Web Workers的浏览器支持情况
10.2使用Web Workers API
10.2.1浏览器支持性检查
10.2.2创建Web Workers
10.2.3多个JavaScript文件的加载与执行
10.2.4与HTML5 Web Workers通信
10.3编写主页
10.3.1处理错误
10.3.2停止Web Workers
10.3.3 Web Workers的嵌套使用
10.3.4使用定时器
10.3.5示例代码
10.4构建Web Workers应用
10.4.1编写blurjs辅助脚本
10.4.2编写blur.html应用页面
10.4.3编写blurWorker.js
10.4.4与Web Worker通信
10.4.5运行程序
10.4.6示例代码
10.5小结
第11章Web Storage API
11.1 HTML5 Web Storage概述
11.2 Web Storage的浏览器支持情况
11.3使用Web Storage API
11.3.1检查浏览器的支持性
11.3.2设置和获取数据
11.3.3封堵数据泄漏
11.3.4 localStorage与sessionStorage
11.3.5 Web Storage API的其他特性和函数
11.3.6更新Web Storage后的通信
11.3.7探索Web Storage
11.4构建Web Storage应用
11.5浏览器数据库存储展望
11.5.1 Web SQL Database
11.5.2索引数据库API
11.6进阶功能
11.6.1 JSON对象的存储
11.6.2共享窗口
11.7小结
第12章构建离线Web应用
12.1 HTML5离线Web应用概述
12.2使用HTML5离线Web应用API
12.2.1检查浏览器的支持情况
12.2.2搭建简单的离线应用程序
12.2.3支持离线行为
12.2.4 manifest文件
12.2.5 applicationCache API
12.2.6运行中的应用缓存
12.3使用HTML5离线Web应用构建应用
12.3.1创建记录资源的manifest文件
12.3.2创建构成界面的HTML和CSS
12.3.3创建离线JavaScript
12.3.4检查applicationCache的支持情况
12.3.5为Update按钮添加处理函数
12.3.6添加Geolocation跟踪代码
12.3.7添加Storage功能代码
12.3.8添加离线事件处理程序
12.4小结
第13章HTML5未来展望
13.1 HTML5的浏览器支持情况
13.2 HTML未来的发展
13.2.1 WebGL
13.2.2设备
13.2.3音频数据API
13.2.4触摸屏设备事件
13.2.5 P2P网络
13.2.6最终方向
13.3小结

文摘
版权页:

图灵程序设计丛书:HTML5程序设计

插图:

图灵程序设计丛书:HTML5程序设计

本章将探讨用于构建实时(real-time)跨源(cross-origin)通信的两个重要模块:跨文档消息通信(Cross Document Messaging)和XMLHttpRequest Level 2。通过它们,我们可以构建引人注目的Web应用。作为HTML5应用新的通信手段,这两个构建块可以让不同域间的Web应用安全地进行通信。
首先,我们要讨论HTML5通信规范中的两个主要元素:postMessage API和源安全(origin security)概念,之后将会展示如何用postMessage API在iframe、标签页和窗口间进行通信。
接下来,我们会探讨XMLHttpRequest Level 2——XMLHttpRequest的改进版,介绍XMLHttp-Request在哪些方面得到了改进,并会特别介绍如何用XMLHttpRequest发起跨源请求以及如何使用新的进度事件(progress event)。
6.1跨文档消息通信
出于安全方面的考虑,运行在同一浏览器中的框架、标签页、窗口间的通信一直都受到了严格的限制。例如,在浏览器内部共享信息对某些站点可能比较方便,但是同时也增加了受到恶意攻击的可能性。如果浏览器允许程序访问加载到其他框架和标签的内容,某些网站就能够利用脚本来窃取其他网站的某些信息。浏览器厂商合理地限制了这类访问,当尝试检索或修改从其他源加载的内容时,浏览器会抛出安全异常,并阻止相应的操作。
然而,现实中存在一些合理的让不同站点的内容能在浏览器内进行交互的需求。Mashup就是最典型的一个例子,它是各种不同应用的结合体,把来自不同站点的地图、聊天、新闻等应用全部整合到一起形成一个新的元应用(meta-application)。在这种情形下,如果浏览器内部能提供直接的通信机制,就能更好地组织这些应用。
为了满足上述需求,浏览器厂商和标准制定机构一致同意引入一种新功能:跨文档消息通信。跨文档消息通信可以确保iframe、标签页、窗口间安全地进行跨源通信。它把postMessag API定义为发送消息的标准方式。利用postMessage发送消息非常简单,代码如下所示:
chatFrame.contentWindow.postMessage;
接收消息时仅需在页面中增加一个事件处理函数。当某个消息到达时,通过检查消息的来源来决定是否对这条消息进行处理。

内容简介
《图灵程序设计丛书:HTML5程序设计(第2版)》首先介绍了HTML5的历史背景、新的语义标签及与以往HTML版本相比的根本变化,同时揭示了HTML 5背后的设计原理。《图灵程序设计丛书:HTML5程序设计(第2版)》在上一版的基础上新增了SVG和拖放API相关内容,并对部分内容进行了更新。从第2章起,分别围绕构建令人神往的富Web应用,逐一讨论了HTML55的Canvas、Geolocation、Communication、WebSocket、Forms、Web Workers、Storage等API的使用,辅以直观明了的客户端和服务器端示例代码,让开发人员能够迅速理解和掌握新一代Web标准所涵盖的核心技术。《图灵程序设计丛书:HTML5程序设计(第2版)》最后探索了离线Web应用并展望了HTML55未来的发展前景。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多