XForms页面结构

XForms页面结构也同样实现了数据、逻辑、显示三层的分离。但是客观上来说没有Struts那样分离的那样清晰。下面举一个简单的XForms的例子我们来看看它的页面构成。
<xforsm:head>
  <xforms:model>
      <xforms:submission id="M-001" action="../debug.jsp" method="post">
      <xforms:instance id="M-002">
          <data>
            <name/>
          </data>
      </xforms:instance>
      <xforms:bind id="M-003" nodeset="M-002">
          <xforms:bind id="M-103" nodeset="data/name" type="string"/>
      </xforms:bind>
  </xfomrs:model>
</xforms:head>
<xforms:body>
  <xforms:group id="M-004">
      <xforms:input id="M-005" bind="M-103">
          <xforms:label>name</xforms:label>    
      </xforms:input>
      <xforms:send id="M-006" bind="M-001">
  </xforms:group>
</xforms:body>
  我们看具体剖析一下这个XForm的文档结构,首先它跟普通的htm表单一样也具有head和body部分。整个XForm结构跟XML文档一样所有元素都是成对出现的,其实它也跟Html一样,也是成对的标签,只不过在htm中标签定义的不是那么严格罢了。

  head部分主要包括数据层和绑定部分,<xforms:submission>主要定义了提交信息,在html中是这样的<form action="*.jsp/do" mothed="get/post">形式上来说是一样的。

  <xforms:instance>主要定义视图的数据结构,也是提交表单的数据结构。这就是XForms的数据部分。

  <xforms:bind>它是视图和数据之间的纽带,主要就是把表单的数据绑到数据上,然后提交后台。这也是所谓的业务处理,之所以称为“所谓”是以为它根本够不成业务处理,仅仅能处理一些简单的计算功能。它的另一个功能是约束显示层的信息,type="string"就是定义name必须为string 类型的。当然它的约束不仅仅是简单的数据类型(如:int,data) 而且还包括对视图显示的控制如readonly()只读。

  最后看看视图部分,视图部分并不象在html那样把每个按钮,或一个输入框自定义,而是简单的用一个标签<xforms:input>来表示一个输入框,一个<xforms:send>提交按钮,来表示显示给用户部分。那么这个时候你就会问那就没有个性化的东西了,对!一切都已经被定义了,原因有2,第一XForms并不适合于对个性化的网页适用,如果想对控件控制必须加入css样式表单控制,个人认为它只适合对大量表格的应用,如数据报表,BI等。第二,XForms称为下一代的web窗体,要跨各种系统如电话,所以就更不能让用户自定义控件否则就不能在不同的系统中运行。一切的一切都属于XForms的命名空间之中。
 



  这个图就是XForms的页面结构图,可以看出来它的逻辑层和显示层并不是完全分离的.

  好了,以上就我对XForms的理解,有不足之处希望高人指点,有说错的地方希望W3C组织不对一个初学者追究。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书首先介绍了html5 的历史背景、新的语义标签及与以往html 版本相比的根本变化,同时揭示了html5 背后的设计原理。从第2 章起,分别围绕构建令人神往的富web 应用,逐一讨论了html5 的canvas、geolocation 、communication、websocket、forms、web workers、storage 等api 的使用, 辅以直观明了的客户端和服务器端示例代码,让开发人员能够迅速理解和掌握新一代web 标准所涵盖的核心技术。本书最后探索了离线web 应用并展望了html5 未来的发展前景。 本书面向有一定经验的web 应用开发人员,对html5 及未来web 应用技术发展抱有浓厚兴趣的读者也可以学习参考。 第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
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持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
由于上传文件大小限制,只能分为5部分上传,其余部分请在我的资源中找到,下载后共同解压 内容简介   今天,大多数现代浏览器都已经支持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
  《深入HTML5编程(第 2版)》首先介绍了HTML5的历史背景、新的语义标签及与以往HTML版本相比的根本变化,同时揭示了HTML5背后的设计原理。本书在上一版的基础上新增了SVG和拖放API相关内容,并对部分内容进行了更新。从第 2章起,分别围绕构建令人神往的富Web 应用,逐一讨论了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用,辅以直观明了的客户端和服务器端示例代码,让开发人员能够迅速理解和掌握新一代Web标准所涵盖的核心技术。《深入HTML5编程(第 2版)》后探索了离线Web应用并展望了HTML5未来的发展前景。   《深入HTML5编程(第 2版)》面向有一定经验的Web应用开发人员,对HTML5及未来Web应用技术发展有浓厚兴趣的读者也可以学习参考。 第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 化繁为简 5 1.4.4 通用访问 5 1.5 无插件范式 5 1.6 HTML5的新功能 8 1.6.1 新的DOCTYPE和字符集 8 1.6.2 新元素和旧元素 9 1.6.3 语义化标记 10 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 小结 21 第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 23 2.1.5 替代内容 24 2.1.6 CSS和canvas 25 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 填充样式 34 2.2.7 填充矩形区域 34 2.2.8 绘制曲线 35 2.2.9 在canvas中插入图片 37 2.2.10 渐变 38 2.2.11 背景图 40 2.2.12 缩放canvas对象 42 2.2.13 Canvas变换 43 2.2.14 Canvas文本 45 2.2.15 应用阴影 46 2.2.16 像素数据 48 2.2.17 Canvas的安全机制 50 2.3 使用HTML5 Canvas创建应用 51 2.3.1 进阶功能之全页玻璃窗 54 2.3.2 进阶功能之为Canvas动画计时 54 2.4 小结 57 第3章 SVG 58 3.1 SVG概述 58 3.1.1 历史 58 3.1.2 理解SVG 59 3.1.3 可缩放图形 61 3.1.4 使用SVG创建2D图形 61 3.1.5 在页面中添加SVG 61 3.1.6 简单的形状 62 3.1.7 变换SVG元素 63 3.1.8 复用内容 64 3.1.9 图案和渐变 64 3.1.10 SVG路径 65 3.1.11 使用SVG文本 66 3.1.12 组合场景 67 3.2 使用SVG创建交互式应用 68 3.2.1 添加树 69 3.2.2 添加updateTrees函数 69 3.2.3 添加removeTree函数 70 3.2.4 添加CSS样式 70 3.2.5 终代码 70 3.3 小结 74 第4章 音频和视频 75 4.1 HTML5 Audio和Video概述 75 4.1.1 视频容器 75 4.1.2 音频和视频编解码器 76 4.1.3 HTML5 Audio和Video的限制 77 4.1.4 audio元素和video元素的浏览器支持情况 77 4.2 使用HTML5 Audio和Video API 78 4.2.1 浏览器支持性检测 79 4.2.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值