zoukankan      html  css  js  c++  java
  • HTML5新特性介绍

    作为HTML标准的下一个版本,HTML5包含了很多新特性,例如内建的视频、音频标记,元素拖放功能。这篇博文将选择其中几个非常吸引人的特性进行仔细介绍,让大家对HTML5能有个"管中窥豹――可见一般"。

    写在最前

    作为HTML 4.1XHTML 1.0DOM Level 2 HTML的后续标准, HTML5包含了非常多的内容和新特性。其宗旨就是要制定一套Web富客户端开发的工业标准,从而让开发人员和用户从目前各个不同的客户端平台(例如FlashSilverLight)独立出来。HTML5标准组织于2004年成立并在20081月发布了第一个标准草案。该标准草案得到了大量公司的支持(其中GoogleApple就是两大最积极的巨头。大家可能都知道Apple最新的产品iPad就不支持Flash。其原因之一就是Apple更认同HTML5会是未来的发展方向)。尽管这个标准草案仍然在不断修改中,但其中的很多新特性已经得到主流浏览器的支持(如FireFoxSafariOpera。其中OperaHTML5的支持最好;IEHTML5上基本没多少支持,但微软也在积极努力中)。比如画布元素在除IE外的其他浏览器的最新版本中都得到了实现。你可以在Wiki中找到HTML5新特性在目前最主流浏览器上的支持情况。在下面的介绍中,我会列出支持该特性的所有浏览器,请下载该浏览器的最新版本运行相应的例子代码。

    元素拖放

    支持浏览器:FireFoxSafari

    根据以前的HTML/XHTML标准,所有的页面元素都是放到页面上的固定位置。开发人员可以通过设置CSS属性来调整元素的页面位置。所以HTML标准本身不支持拖放功能。为了实现和桌面操作系统(Windows)一样的用户体验,很多公司和开源组织开发了专门的JavaScript库来支持这一点,例如YUI。在HTML5标准中,元素的拖放特性将包括在其中。这就意味所有支持HTML5的浏览器都必须支持这一特性。开发人员也就不必为支持这一功能来包含一个第三方的JavaScript库。下面用一个最简单的实例解释该功能:

    STEP1:新建HTML页面,添加一个DIV作为被拖放 (Drag) 的元素,设置它的draggable属性为truedraggable属性是HTML5中定义的新元素属性,其默认值为false)。

    STEP2: 添加一个DIV作为拖动的目标区域 (Drop) 元素。

    STEP3: 添加相应是事件处理函数。HTML5为拖放特性添加了一组事件,如dragstart, dragover, dragenter, drop.

    STEP4: FireFox或者Safari中打开本页面,拖动drag元素到drop元素区域。Drop元素内部会显示draggable文本。

    视频与音频

    支持浏览器:FireFoxSafari

    视频和音频是HTML5中非常重要的新特性。现在的互联网内容中,视频内容已经是必不可少的组成部分。而早期的HTML标准对视频和音频都没有提供支持。于是,各种Web客户端私有平台(如Flash, SilverLight)成为了播放视频、音频内容的主角。作为最新的HTML标准,显然需要支持视频和音频。下面用一个实例说明怎样使用HTML5视频功能(音频功能类似):

    STEP1:创建一个HTML页面,添加HTML视频元素到页面中,并指定视频源。

    如代码所示,可以在一个Video视频元素中可以添加多个视频源,它们会被顺序播放。

    STEP2:添加播放按钮和播放进度显示面板

    STEP3:添加视频播放控制代码(JavaScript代码)
    
    
    
    
     
    
    对应视频对象(Video)中有一组常用的事件,如canplay事件表示视频已经加载完毕,可以开始播放。另外,Video对象最常见的方法就是playpause
    

    其他

    除掉上面介绍的两个新的特性,HTML5还包含很多非常酷的新功能,它将给Web客户端开放带来很多便利。下面列举其中的一些进行简单介绍。如果感兴趣,可以在网络上找到更多细节。

    • 画布元素(canvas):传统的HTML元素主要用于文本、图像的显示,无法进行绘图操作。比如我们无法在Web页面中绘制股票价格走势图。现在的网站基本上都是嵌入相应的插件(如Javalet)来实现类似功能。Canvas元素就是针对这一需求而设计的。客户端程序(如JavaScript)可以在该元素定义的区域进行任意的2D3D绘制。最新的WebGL标准就是基于Canvas 元素进行3D绘制。

    • 浏览器历史记录管理(Browser History Management):传统的浏览器只在你加载/刷新页面的时候才会添加历史记录。随着Ajax和富客户端的流行,用户可以在一个页面进行很多操作、并通过Ajax和服务器端通讯。但是所有的这些操作都不需要加载/刷新页面。于是这些操作都无法被传统的浏览器作为历史记录保存下来。用户也就redo/undo这些操作。现在很多Web客户端开发库(如YUI)都已经提供了自己的历史记录管理模块。HTML5也把这个非常常见的功能定义在自己标准中。它通过提供一组API接口可以让用户在任何需要的时候触发浏览器去添加历史记录

    • 离线存取数据库(offline storage database):顾名思义,该功能可以让我们的Web 客户端应用程序在离线状态下工作并在本地存取数据。它可以自动检测当前的网络状态来确定是从本地数据库存取内容、还是和服务器同步数据。现在的Google Gear就是提供类似的功能。这个功能非常有用,比如要在CSDN上面写博客,我们可以直接在页面上编辑而不需要担心数据会丢失。因为浏览器会智能选择把数据实时保存到服务器上还是在本地存取。即使当前没有网络,我们同样可以编写博客(只需要我们以前曾经缓存过相应的页面)并自动保存到本地。当重新连上网络后,所有本地保存的数据又能自动同步到服务器上去。

    HTML5还有很多其他新特性,你可以在下面的链接中找到更多信息。随着越来越多大公司的加入,HTML5的发展速度肯定会越来越快。或许很快它就会进入我们的日常开发生活中,它将能够帮助我们解决现在Web富客户端开发的很多问题。HTML5的前景应该会很不错。

    更多资源

    要想学习HTML5标准的新特性,你可以参考下面几个链接
    
    ·         HTML5标准草案:http://dev.w3.org/html5/spec/spec.html
    
    ·         HTML5 示例网站:http://html5demos.com/
    

    Del.icio.us : HTML5,视频,音频,元素拖放

  • 相关阅读:
    工作中遇到的java 内存溢出,问题排查
    java线上内存溢出问题排查步骤
    性能测试-java内存溢出问题排查
    164 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 04 终止finally执行的方法
    163 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 03 使用多重catch结构处理异常
    162 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 02 使用try-catch结构处理异常
    161 01 Android 零基础入门 03 Java常用工具类01 Java异常 04 使用try…catch…finally实现异常处理 01 try-catch-finally简介
    160 01 Android 零基础入门 03 Java常用工具类01 Java异常 03 异常处理简介 01 异常处理分类
    159 01 Android 零基础入门 03 Java常用工具类01 Java异常 02 异常概述 02 异常分类
    158 01 Android 零基础入门 03 Java常用工具类01 Java异常 02 异常概述 01 什么是异常?
  • 原文地址:https://www.cnblogs.com/xuguilin/p/1703533.html
Copyright © 2011-2022 走看看