- 浏览: 318525 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
完善自我:
支持一下!
揭秘IT人才特点:中美印日四国程序员比较 -
悲剧了:
好文,看玩thinking in java的提到的异常处理,看 ...
高效的Java异常处理框架(转) -
yin_bp:
开源框架bbossgroups页支持组件异步方法调用哦,详情请 ...
Spring 3中异步方法调用 -
flyjava:
sun的悲哀
Apache怒了,威胁说要离开JCP
由Peter Lubbers、Brian Albers和Frank Salim编著的《HTML5专业开发》 (Pro HTML5 Programming)一书,旨在帮助开发者们构建能够挖掘当今浏览器全部能力的HTML5应用。
该书主要涉及领域有:
- Communication APIs :探讨构建实时和跨源(cross-origin)通讯的两大基础: 跨文档通讯(Cross Document Messaging)与XMLHttpRequest Level 2。
- Convas API :介绍有关动态生成与渲染图形、图表、图像和动画的API。
- Geolocation API :使用这个API,用户便可共享自己的地理位置,并在Web应用的帮助下享用位置感知的服务(location-aware services)。
- Web Sockets API :定义了一个全双工传输的通讯通道,它在Web之上通过单个套接字进行工作。
- Web Storage API :探讨HTML5 Web存储(也就是DOMStorage),该API令在多个Web请求间持久化数据变得简单。
- Web Workers API :该API为Web应用提供了后台处理的能力。
- HTML5音频与视频 :这些是HTML里新添的元素,它们为开发者提供了一套通用的、集成的、脚本式的处理音频与视频的API,而无需安装任何插件。
Apress出版社特许InfoQ发布该书第六章《使用HTML5 Web Sockets API》 ,并介绍该书作者之一接受InfoQ的访谈。
InfoQ与该作者进行了一系列问答:
InfoQ:你好,Peter!能否简单介绍一下自己,并谈谈你们为什么会写一本关于HTML5的书?
Peter: 我在Oracle工作了大约8年,然后在2008年成为Kaazing的第四名员工。从WebSocket API与协议(作为TCPConnection ) 被加入到HTML5规范开始,Kaazing就一直涉入其中,并且对HTML5的发展起到了重要作用。早在2008年,我们就已经开始提供有关 WebSocket的培训了,那时还没什么浏览器想到要支持它。我们的WebSocket网关能够完全(并且迅速)地模拟标准,所以你在IE6这种老式浏 览器上也可以使用HTML5 WebSockets。
在Kaazing,我负责文档与培训的工作。 Kaazing的创始人(Jonas Jacobi与John Fallows)是我在Orcale的同事,我曾帮助他们编校了2006年Apress出版的《JSF与Ajax》一书。正是他们建议我们三人—— Brian Albers(Kaazing的开发副总裁)、Frank Salim(Kaazing的“编码机器”)和我——写一本有关HTML5 WebSockets的书,可是我们发现市面上并没有HTML5的书,而且有关HTML5开发的资源也很少。
本书不是HTML5的入门书,也不是回顾HTML历史的书。 现在,我想我们都知道HTML5是个大项目,而本书会帮助你使用目前大多浏览器已采用的简单而又强大的API。
InfoQ:HTML5是什么?它要解决什么问题?你能介绍一下HTML5的各个部分以及它们之间的联系吗?
Peter: HTML5不仅仅是HTML的更新换代,它已经孕育很久了。之前最新的HTML(4.01)还是10年前发布的!
当我们谈及HTML5时,实际上它指的是包括HTML、CSS和JavaScript在内的一套技术组合。比如说,HTML5引进了新的画布 (convas)和视频元素。虽然它们自身已经非常强大,但你需要将其与JavaScript和CSS一同使用,其全部能力方能显现。
HTML5讲究简单性。它的一个理念叫做“沿着脚印铺路(pave the cowpaths)” [译注:这里字面意思为“沿着牛走过的脚印铺路”,在这里的意思是,如果一种做法已在开发者中间被广为采用,那么与其禁止它或发明新的做法,还不如考虑接 受它并采纳为标准],这意味着它致力于让之前困难的事情变得非常简单。HTML5还讲究原生的(native)浏览器功能。在HTML5里,你可以完成之 前依赖于插件(如Flash和Silverlight)或者必须用复杂的JavaScript脚本才能做到的事情。比如,HTML5引进了原生的表单控件 类型(日期、拾色器)与表格验证、原生的套接字(用于全双工通信)、原生的绘图API(SVG、画布)以及内置的位置感知(使用Geolocation API)。
InfoQ:目前的浏览器对各种HTMl5 APIs的支持如何?你认为未来会如何发展?
Peter: 浏览器对HTML5功能特性的支持正在以惊人的速度迅速增加——这是十分令人振奋的。许多流行浏览器(如Chrome、Safari、Firefox以及Opera)已经能够支持75%到90%不等的HTML5特性了,而这个数字还在不断增加。
你可以通过html5test.com 或caniuse.com 网站来查询你所使用的浏览器支持哪些功能特性;这是检查飞速变化的HTML5支持情况的好地方。
即使是一直处于落后的IE(IE6仅支持3%,IE8支持28%),在IE9中也“翻倍了”,支持将近60%的HTML5特性。其中一些功能还有硬件优化,这将推动其他浏览器加入进来。
InfoQ:你们的书中介绍了好几种HTML5 APIs。你能否举一些例子来说明,它们将如何帮助开发者构建更好的应用?
Peter: 当然!Web应用已经越来越与桌面的功能不相伯仲。 比如,在Kaazing,一位非常有才华的同事Frank Salim刚刚使用WebSockets与画布(convas)开发了一款VNC客户端——这在几年前(或者几月前)是无法想象的。
大体说,HTML5便于我们开发出更具状态性和事务性的Web应用。你可以使用WebSockets直接连接到远程服务器,你也可以使用 Geolocation API开发出位置感知的应用,并将他们与Map APIs相结合。你可以使用SVG和画布(convas)开发出令人惊奇的动画游戏(2D;但如果你愿意构建自己的浏览器,也可以是3D)。
各个APIs都很强大,你只要将他们结合起来,就可以开发出非常棒的应用。比如,HTML5支持用新的应用缓存(Application Cache)来开发脱机应用,也支持客户端Web存储(甚至是持久化存储,称为localStrorage),那么当然,你可以将脱机应用与存储漂亮地结 合起来;你可以进行脱机检查,而不必依赖不保险的浏览器缓存能力(点击“返回”后,之前的页面就没了)。现在,用户可以按他们所习惯的方式来使用整个应用 了:尚未发出的数据被保存在客户端,待应用检测出你在线后,数据才被发到服务端。
InfoQ:你认为目前HTML5中还缺少什么?还应该添加些什么?是否有新的APIs出现?现有APIs有修改吗?
Peter: 当然,还有很多东西需要打磨,浏览器也需要关注于互操作性。我们不应忽视HTML5原始的设计理念。我觉得,对各种 APIs的二进制支持(跨文档通讯与 WebSockets)是需要改善的,还有对3D画布的支持也需改进。此外,不同特性的无障碍性(accessibility)还需改善。
WebGL 不仅将OpenGL引入到JavaScript中,它也创造了一个通用的二进制数据API。高速的3D API需要二进制缓存,所以有人提议新推出一套用于操作二进制数据的API,称为TypedArray。如果该提议被采纳,TypedArray将在 HTML5中无处不在。
InfoQ:人们如何开发HTML5应用?有哪些主要工具可用于开发、调试和测试应用?
Peter: 目前还没有很多集成开发环境(IDE)支持HTML5。DreamWeaver CS5的HTML5包和Visual Studio都提供了语法补全支持,不过你也可以直接使用文本编辑器(如UltraEdit)或通用的IDE(如Eclipse)。
如今的浏览器调试功能非常强大,浏览器厂商们都在致力于为它们的开发工具增添一些很酷的功能。比如,Google Developer Tools与Speed Tracer、Safari Web Inspector、Firefox Firebug以及Opera Dragonfly,这些都是功能强大的浏览器调试工具。如果你有一段时间未跟踪此领域的话,你会对如此多的强大功能感到非常惊讶。
我发现我的浏览器每周都有功能更新。比如,Chrome刚刚支持对脱机应用的调试以及应用缓存的查看功能,此外,还可以通过控制台来访问Web SQL数据库——太强了!
InfoQ:对于准备使用HTML5进行项目开发的团队,你有什么建议?有什么特别需要注意的地方吗?有什么“最佳实践”吗?
Peter: 不要相信任何炒作,然后,再买本《HTML5专业开发》就没问题了 ;-)
说真的,现在有很多不错的资源。可以看看Google的html5rocks.com 网 站。另外,Paul Irish的html5boilerplate工具也很不错,它将多年经验融汇其中,并且采用了可以令你的网站与老式浏览器完美兼容的技巧与技术(一般来 说,这是个大问题)。我认为,html5boilerplate工具的文档(注释与代码片段)里包含了目前最好的最佳实践。此外,还有很多其他好网站也可 参考。
我也在全球范围内提供HTML5培训(HTML5快速追踪、Bootcamps以及WebSocket课程),所以,如果需要快速入门的话,尽管联系我。
InfoQ:对于HTML5新手来说,这本书哪些部分最有价值?对于有经验的开发者呢?
Peter: HTML5具有强大的简单性。
正像本书书名一样,《HTML5专业开发》面向的读者群是对HTML和JavaScript有一定了解、并且希望使用新的HTML5 API的开发者。
不过,由于HTML5讲究简单性,所以对于HTML、JavaScript和CSS新手来说,HTML5实际上要比看起来容易得多。我们希望本书能引发大家按有创意的方式来使用HTML5 APIs。
《HTML5 专业开发》讲解了如何使用新的HTML5 APIs,并通过实际例子展示了HTML5的功能特性,以及目前的浏览器支持其中哪些。我们挑选出了一些最常用的、实用而且强大的HTML APIs进行讲解,以便于读者快速上手。你将学习到如何使用HTML5的各种功能特性来开发Web应用,比如地理位置、Web存储、 WebSockets、Web Workers、画布、音频和视频等等。
你会看到这些功能如何结合起来,无缝地与其他标准Web技术工作。我们的例子使用了HTML5文档,并充分利用了浏览器的基本功能。
你可以在InfoQ找到更多关于HTML5 的信息。
原文:http://www.infoq.com/cn/articles/pro-html5-programming
发表评论
-
Web编程是函数式编程
2010-11-30 13:44 1074任何一位在两个领域里 ... -
如何开发Web应用程序
2010-11-30 13:41 1142这是一个经常被问到的 ... -
设计Web应用程序时要注意可伸缩性
2010-11-26 09:19 955Max Indelicato是一位软件 ... -
Web 2.0应用客户端性能问题十大根源
2010-11-25 20:19 1047Web 2.0应用的推广为用户带来了全新的体验,同时也让开 ... -
HTML压缩(JSP的GZIP实现)
2010-11-24 22:31 4945HTTP 压缩可以大大提高浏览网站的速度,它的 ... -
浏览器加载和渲染html的顺序
2010-11-22 09:45 25951.浏览器加载和渲染html的顺序 1、IE下载的顺序是从上到 ... -
在服务端合并和压缩JavaScript和CSS文件
2010-11-22 09:16 1165Web性能优化最佳实践中最重要的一条是减少HTTP请求 ... -
用 YUI Compressor 压缩和混淆 JS 和 CSS
2010-11-22 09:05 2401一、简介: 目前开发Web应用Javas ... -
如何缓存DWR生成的JS文件
2010-11-18 17:37 1977DWR provides a convenient mec ... -
HTTP状态一览
2010-11-17 22:43 782在网站建设的实际应用中,容易出现很多小小的失误,就像m ... -
两款HTTP流量分析工具的比较:HTTP Watch,Fiddler
2010-11-17 17:26 0做Web开发或者Web分析经常需要查看Http通讯的过程, ... -
了解CSS的查找匹配原理,让CSS更简洁、高效
2010-11-17 16:49 0用了这么多年的CSS,现在才明白CSS的真正匹配原理,不知 ... -
高性能WEB开发 - flush让页面分块,逐步呈现
2010-11-17 16:47 0在处理比较耗时的请求的时候,我们总希望先让用户先 ... -
WEB高性能开发 - 疯狂的HTML压缩
2010-11-17 16:46 0前言: ... -
该如何加载google-analytics(或其他第三方)的JS
2010-11-17 16:44 0很多网站为了获取用户访问网站的统计信息,使用了go ... -
高性能WEB开发 - 页面呈现、重绘、回流。
2010-11-17 15:57 0页面呈现流程 在讨论页面重绘、回流之前。需要 ... -
高性能WEB开发 - JS、CSS的合并、压缩、缓存管理
2010-11-17 15:54 0本篇文章主要讨论下目前JS,CSS 合并、压缩、缓存 ... -
高性能WEB开发- 减少请求,响应的数据量
2010-11-17 15:49 0上一篇中我们说 ... -
高性能WEB开发 - 为什么要减少请求数,如何减少请求数!
2010-11-17 15:42 0http请求头的数据量 我们先分析下 ... -
高性能web开发 - 如何加载JS,JS应该放在什么位置?
2010-11-17 15:39 0外部JS的阻塞下载 所有浏览器在下载JS的时候, ...
相关推荐
使用 Swift 开发 App 入门课程教师指南,intro-to-app-development-with-swift-teacher-guide,使用 Swift 开发 App 入门课程教师指南,intro-to-app-development-with-swift-teacher-guide,使用 Swift 开发 App 入门...
"专业嵌入式软件开发 全面走向高质高效编程"的主题揭示了该领域关注的核心:提高软件质量和效率。这本书由李云撰写,包含书签功能和可选择的文字,方便读者查阅和学习。 嵌入式开发的关键知识点包括: 1. **硬件...
html5 轮播图-淡入淡出 轮播图-跑马灯式 解决回车键(Enter)触发 form 表单提交的问题 :umbrella_on_ground: Css width 和 height position 自动换行显示问题 伪元素 css 加载顺序 media 查询 元素分类 css 属性选择...
个性化、集成化的插件服务:摘录之星用插件技术无缝扩展知识库,满足个性化、专业化知识管理的需要;所有的插件服务都是基于WEB方式的,跟主界面是高度集成化的。 P2P信息共享:把任何一个目录共享,其他人都可以...
webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录webservice摘录质
IT相关词,总计4.5万+,摘录如下: go语言 go桌面 hadoop集群 html5+联盟 html5技术 html5游戏开发 html解析器 http服务器 http协议 i/o大会 ibm软件 ie插件 im聊天 intel软件 ios开发 iOS开发工具 ios类库 ios平台 ...
Linux摘录入门基础 在计算机世界中,Linux操作系统是一个强大且灵活的开源系统,它以其稳定性和安全性赢得了全球用户的喜爱。这份"Linux摘录入门基础"涵盖了Linux的基础知识,包括安装、基本命令、文件系统、用户...
C++是一种强大的、通用的编程语言,被广泛应用于系统软件、应用软件、游戏开发、设备驱动程序等。这里,我们聚焦于"易学C++"的第18、19、20章,这些章节涵盖了C++语言的高级特性和实践技巧。 18章:模板与泛型编程 ...
《UML 摘录小结》 UML,全称为Unified Modeling Language,是一种标准化的通用建模语言,主要用于软件开发过程中的系统描述、可视化、构造和文档化。UML的诞生是为了统一Booch、Rumbaugh和Jacobson等人的表示方法,...
”,“HTML5的结构”,“文档结构化”,“HTML5表单”以及“HTML5多媒体:音频与视频”。我们可以从这些章节中提炼以下知识点: 1. HTML5是什么? - HTML5是超文本标记语言的最新标准,它为现代网页设计提供了新的...
《Java与模式 阎宏 摘录》是一本深度探讨Java编程语言与设计模式的书籍,由著名IT专家阎宏所著。这本书旨在帮助Java开发者深入理解面向对象设计原则,掌握并应用各种设计模式,提升软件开发的效率和质量。通过摘录,...
它提供了丰富的组件系统、数据绑定、动画效果以及强大的API,使得开发人员能够创建功能丰富的、交互式的用户界面。在"摘录:Ext Js 简单入门(淡入淡出、波纹效果)"这篇博文中,作者主要介绍了如何利用Ext Js实现两种...
六选一 自动摘录生成器 。... 与任何选择器匹配的标签将被排除。 默认行为是仅显示摘要而不是整个帖子。 将hideWholePostExcerpts设置为false可覆盖该内容并显示整个帖子摘录。 excerpt : depth
2023年基金四季报摘录:百亿基金经理如何看市场焦点?
在深入探讨Django之前,我们先来了解一下Python和Web开发框架的基本概念。Web开发框架是构建Web应用程序的工具集合,它简化了开发过程,提供了诸如路由、模板渲染、数据库集成等核心功能。Django作为Python的一个...
摘录-html 解析给定的html文本以获得良好的摘录。 安装 $ npm i excerpt-html --save API使用 var htmlCode = '<p>Hello world</p>' ; var excerptHtml = require ( 'excerpt-html' ) ; var excerpt = excerptHtml ...