Web程序员们,你准备好迎接HTML5了吗?

简介:

HTML5作为下一代的web开发标准,其特性已经慢慢地出现在主流的浏览器中,这种新的HTML将会让浏览器不必再依赖Flash、QuickTime、Silverlight等插件,也简化了原来需要大量JS才能达到的效果。虽然HTML5还在讨论过程中,但是其优越的特性已经得到了大家的认可,各大浏览器厂商,一些知名的内容发布网站也都是积极地推动, 尤其是即将发布的IE9会完全支持HTML5。作为Web开发人员的我们,需要做的是:如何把HTML5转化为各种Web应用,如何做到现有的Web应用过渡到HTML5。下面将介绍作为Web开发人员必须知道的HTML5特性,以及各特性可能的应用场景。

 

1, 用Canvas绘制图形

 

不用怀疑,这张3D的图画就是用canvas画出来的。

Canvas的出现颠覆了传统在Web应用中画图的方式,传统的画图方式有在服务器端先画好图片,再把图片发到浏览器中,或者用Flash,还有用第三方插件。但是这些方法都不是原生的HTML, HTML5 canvas提供了通过javascript绘制图形的方法,方法简单但是功能强大,作为开发工程师可以使用canvas API随心所欲地控制图画。

点击这里查看canvas的API:Canvas API

创建一个canvas元素非常简单:

<canvas id="myCanvas" width="300" height="200">
你的浏览器是老古董了,不支持canvas,扔了吧.
</canvas>

点击这里查看一个canvas显示的HelloWorld:Canvas-HelloWorld

 

开发人员开发过程中需要注意的是:为了Javascript中能应用canvas对象,需要给元素设置ID;通常也要设置其高度和宽度;为了网站的友好性,需要给元素中添加不支持的文字说明,在不支持canvas的浏览器中给用户提醒。

Canvas是HTML5中最让人期待的特性之一,目前大部分的Web浏览器的支持(Chrome,Firefox,Safari,Opera支持,IE8不支持),canvas可以应用于游戏设计、增强图形用户界面。

下面是一些非常cool的Canvas应用:

非常cool的游戏应用:Best HTML5 Canvas Games

令人惊讶的canvas动画效果:8 Simply Amazing HTML5 Canvas and Javascript Animations

2,多媒体音频和视频

<audio>和<video>是首批添加到HEML5规范中的标记。它们的加入使得web浏览器能够以一种更方便的方式来处理音频和视频文件,结束了在web浏览器中安装播放插件的历史。比较令人头疼的是,各大浏览器厂商对音频和视频格式有重大的分歧,Firefox坚持将开放的ogg标准,而Safari则希望是MP3和MP4的标准,这就造成了我们开发过程中需要提供多个版本的音频和视频文件来兼容浏览器。

下图中可以看到各大浏览器和多媒体分享站点支持的格式:

目前浏览器对音频文件的支持情况:

Format IE8 Firefox 3.6 Opera 10.5 Chrome 5.0 Safari 5.0
Ogg Vorbis No Yes Yes Yes No
MP3 No No No Yes Yes
Wav No Yes Yes No Yes

目前浏览器对视频文件的支持:

Format IE8 Firefox 3.6 Opera 10.5 Chrome 5.0 Safari 5.0
Ogg No Yes Yes Yes No
MPEG 4 No No No Yes Yes

点击这里查看audio和video的属性:HTML5 Audio HTML5 Video

创建audio和vedio元素:

<audio controls="controls">
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
您的浏览器不支持音频标签!

 

</audio>
<video width="320" height="240" controls="controls">
<source src="movie.ogg" type="video/ogg" />
<source src="movie.mp4" type="video/mp4" />
您的浏览器不支持视频标签!
</video>

点击这里查看音频和视频标签在浏览器中的效果:Audio - Vedio

就开发者而言,目前的情况是,我们需要准备多个版本的音频和视频,并把文件路径都添加到audio和vedio中,web浏览器会跳过不支持的格式,另外,最好添加针对不支持audio和vedio的浏览器的文字提示或者其他多媒体播放方式。

Audio和Vedio是两个简单而强大的标签,目前国内外已经有多个多媒体分享网站开始支持或测试HTML5。

如下是一些HTML5 Vedio体验资源:

Video showcase from Apple

Google 联合 Arcade Fire 推出了一个 HTML5 互动电影: The Wilderness Downtown点击这里可以进入其在 Chrome Experiment 的页面

HTML5 Video Player
YouTube - Broadcast Yourself(哦,对不起,这是个不存在的网站)

3,Web存储

随着Web应用的发展,需要在客户端存储的场景越来越多,传统的客户端存储方式有cookie、Firefox下有globalStorage、Flash在插件的支持下有其自己的存储方式,但是这几种方式都有其局限性(安全性和兼容性)。HTML5提供的在客户端存储方式有:Web Database和Web storage,Web Database适应与客户端复杂数据的存储,其标准还不成熟,浏览器的支持也很有限,需要Web开发人员进一步的关注,假如存储的是简单的数据,则可以使用Web storage方式,不占用带宽,并且得到了主流浏览器的支持,包括IE8。

Web存储有两种方式:localStorage和sessionStorage,参考这里查看详细定义,两者的区别简单来说,localStorage可以永久保存数据,也就是说关闭浏览器,下次打开浏览器还能取得存储的数据,而sessionStorage只在当前的会话中可用。

下面的例子演示统计用户访问网站的次数:

<script type="text/javascript">
if (typeof(localStorage) == "undefined") {
document.write("你的浏览器不支持Web存储");
} else {
if (localStorage.pagecount){
localStorage.pagecount=Number(localStorage.pagecount) +1;
}
else{
localStorage.pagecount=1;
}
document.write("您已经光临本站 "+ localStorage.pagecount + " 次了.");
}
</script>

点击这里查看运行效果:Demo

开发中需要注意的是,Web storage有安全方面的权限的,不要在其中存储私密的数据, 另外,这个存储的数据是不能跨浏览器读取的,也就是说用一种浏览器打开站点保存的数据,用其他浏览器是取不到的。

尽管Web存储有这样的缺陷,但是这个特性使得应用程序在离线状态下也可以正常工作,当程序需要处理大量的数据时,可以避免数据频繁地在客户端和服务器端的往来,对移动设备来说,可以极大地减少流量的消耗。

这里有一篇很好的文章介绍Web存储:Web Storage全解析

4,其他的简化了开发的HTML5特性

  • 一些常用输入类型:Email,url,number,date pickers等
  • 一些标准属性:contenteditable 等
  • 一些input属性:placeholder,required,autofocus,min,max,step,

这里推荐两篇介绍这些HTML5特性的文章,请参考:你必须知道的28个HTML5特征、窍门和技术给网页设计师的30个HTML5学习资源

以上这些HTML5特性是目前浏览器支持较好的特性,也是关注度非常高的HTML5特性,本文是从一个Web开发人员的角度来理解HTML5,目的是希望有更多的Web开发人员能尽快地融入HTML5的开发中来,最近优酷已经开始应用HTML5和HTTP Live Streaming技术,让更多的用户可以在移动平台分享多媒体,这对国内的HTML5的推广起到了积极的作用,微软承诺IE9将全面支持HTML5,这对HTML5的推广是一个振奋人心的消息。可以预见,未来几年HTML5将快速地发展,作为Web开发人员,我们更应该尽快熟悉HTML5的各种特性,在项目开发过程中也应该更多考虑如何利用HTML5的特性加强web应用程序的易用性和可移植性。




本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/443883,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 Web App开发 移动开发
HTML5 Web 存储详解
HTML5 Web存储提供了两种客户端数据存储机制:**Local Storage**和**Session Storage**。Local Storage用于长期存储数据,即使关闭浏览器数据也依然存在,适用于保存用户偏好设置等信息。Session Storage则在标签或窗口关闭时清除数据,适合存储临时信息。两者均提供了简单的API进行数据的存取操作,但需要注意的是,Web存储并非加密存储,不应存放敏感信息。现代浏览器普遍支持Web存储,合理利用这两种存储方式可提升Web应用的用户体验。
|
2月前
|
存储 移动开发 大数据
HTML5 Web IndexedDB 数据库详解
IndexedDB 是一种高效的浏览器存储方案,允许在本地存储大量结构化数据,支持索引和事务,适用于需要离线和大数据处理的应用。它由数据库、对象仓库等组成,通过键值对存储数据,确保数据一致性和完整性。本介绍展示了如何创建、读取、更新和删除数据,以及事务和错误处理的最佳实践。
|
29天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
37 6
|
29天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
37 5
|
2月前
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
2月前
|
移动开发 JavaScript 前端开发
HTML5 Web Workers详解
HTML5 Web Workers 允许在后台线程中运行 JavaScript,实现复杂计算而不影响用户界面,提升应用性能。其主要特性包括并行处理、异步通信、独立作用域及多数据类型支持。通过创建和使用 Worker 文件,如 `worker.js`,可执行后台任务,并与主线程通过消息传递机制通信。适用于数据处理、图像处理、复杂计算及网络请求并行等场景。需要注意的是,Web Workers 在浏览器兼容性、安全性限制、调试及资源消耗方面需特别关注。合理利用 Web Workers 可显著增强 Web 应用的流畅度和响应速度。
|
2月前
|
SQL 存储 移动开发
HTML5 Web SQL 数据库详解
Web SQL 数据库是 HTML5 中的一种本地存储技术,允许在浏览器中使用 SQL 语言操作本地数据,支持离线访问和事务处理,适用于缓存数据和小型应用。然而,其存储容量有限且仅部分现代浏览器支持,标准已不再积极维护,未来可能被 IndexedDB 和 localStorage 等技术取代。使用时需谨慎考虑兼容性和发展前景。
|
2月前
|
存储 移动开发 缓存
HTML5 Web 存储详解
HTML5 Web 存储包括 `localStorage` 和 `sessionStorage`,前者提供持久存储且无过期时间,后者仅在会话期间有效。两者均支持键值对形式存储数据,容量约为 5-10 MB。`localStorage` 适用于用户偏好设置、登录状态保持及离线应用缓存;`sessionStorage` 则用于临时数据如表单输入。数据以字符串形式存储,可通过 `JSON` 方法处理对象。由于数据存储于本地,不适合存放敏感信息。示例代码展示了如何使用按钮将输入框内容保存至 `localStorage` 并进行清除操作。
|
2月前
|
移动开发 前端开发 JavaScript
HTML与现代Web开发的不同技术
【10月更文挑战第11天】HTML与现代Web开发的不同技术
39 0
|
3月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
71 19