引言,认识两个标准制定的组织

在讲什么是Html5之前得先了解两个组织;WHATWG :网页超文本技术工作小组(英语:Web Hypertext Application Technology Working Group,缩写为WHATWG),是一个以推动网络 HTML 5 标准为目的而成立的组织。在2004年,由OperaMozilla基金会苹果这些浏览器厂商和一些相关团体形成的一个松散的、非正式的协作组织,这些团体希望发展一些新的技术,从而开发人员可以在互联网上编写并部署应用。 另外一个就是大家熟悉的W3C :万维网联盟(World Wide Web Consortium,W3C),又称W3C理事会,它主要是为解决web应用中不同平台、技术和开发者带来的不兼容问题,保障Web信息的顺利和完整流通,万维网联盟制定了一系列标准并督促Web应用开发者和内容提供者遵循这些标准。标准的内容包括使用语言的规范,开发中使用的导则和解释引擎的行为等等。W3C也制定了包括XMLCSS等的众多影响深远的标准规范。

那什么是HTML5呢?

HTML 5草案的前身名为Web Applications 1.0,是在2004年WHATWG提出,再于2007年W3C接纳,并成立了新的HTML工作团队。在2008年1月22日,第一份正式草案发布。WHATWG表示该规范是目前仍在进行的工作,仍须多年的努力。目前FirefoxGoogle ChromeOperaSafari(版本4以上)、Internet Explorer 9已支援HTML5技术。

HTML5本质并没有对之前HTML4版本的规范进行彻底的变革,更令人欣喜的是,HTML5一开始设计就考虑了跟之前的标准进行兼容。而且把最新的WEB开发的一些新技术新的规范引入进了新版本的标准中。那么它的本质是什么呢?其实HTML5的发展就是html,css,jsapi的发展,用另外一句话解释就是:HTML5=HTML+CSS+JSAPI。

HTML5带给我们的是什么呢?

1、让Web再次回归到富客户端地步,而且更加的独立,减少了对第三方插件的依赖。

比如:之前的HTML4的标准中并没有对于视频、音频以及其他的富客户端技术支持的非常好,这就使得Flash和SilverLight变得异常的成功。而在HTML5新标准中原生的就支持音频、视频、画布等技术。让我们的WEB程序拥有更多富客户端表现的方式,而且让我们的WEB程序更加独立,更好的适应多种形式的客户端。

2、对本地离线存储的更好的支持

由于之前想在客户端保存一些数据都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。有了本地数据库的支持,让一些简单的离线应用也成为了可能。

3、新的特殊内容元素,更好的支持SEO以及方便视障人士使用

现在所有的站点基本上都是Div+CSS布局,几乎所有的文章标题、内容、辅助介绍等都用Div容器来承载。搜索引擎在抓取页面内容时,因为没有明确的容器的含义只能去猜测这些标签容器承载的是文章标题还是文章内容等,HTML5新标准中直接添加了拥有具体含义的HTML标签比如:article、footer、header、nav、section

4、更加智能的表单标签

之前的表单标签,仅仅是简单的类型的约束,比如文本框、文本域、下拉列表等,而跟业务结合紧密的表单标签数据校验等控制都没有很好的支持,而是用这些技术都基本上都是跟第三方的JS控件进行结合使用,但是这些第三方总会涉及到版本控制、浏览器兼容性、非标准等一系列的问题,而在HTML5的标准中直接添加了智能表单,让这一切都变得那么的简单,比如 calendar、date、time、email、url、search。

5、HTML5即时二维绘图 ,也就是画布的引入,让Javascript子弹飞

画布的引入使得:Web端生成动画效果、制作Web游戏、更好的交互体验设计都增加了无限的变数,当社区充斥着乱七八糟超炫的HTML5的JS控制的效果的时候,让人无限的赞叹。HTML5 的canvas 元素使用JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

6、JS嗑药了,支持多线程

在不影响UI update 及 浏览器与用户交互的情况下, 前端做大规模运算,只能通过 setTimeout 之类的去模拟多线程 。而新的标准中,JS新增的HTML5 Web Worker对象原生的就支持多线程。

7、WebSockets让跨域请求、长连接、数据推送等一切都变得那么简单,Web不仅仅是Ajax

WebSockets是在一个(TCP)接口进行双向通信的技术,PUSH技术类型。WebSocket是html5规范新引入的功能,用于解决浏览器与后台服务器双向通讯的问题,使用WebSocket技术,后台可以随时向前端推送消息,以保证前后台状态统一,在传统的无状态HTTP协议中,这是“无法做到”的。

8、更好的异常处理

HTML5(text/html)浏览器将在错误语法的处理上更加灵活。HTML5在设计时保证旧的浏览器能够安全地忽略掉新的HTML5代码。与HTML4.01相比,HTML5给出了解析的完整规则,让不同的浏览器即使在发生语法错误时也能返回完全相同的结果。

9、文件API让文件上传和操纵文件变得那么简单

由于项目中经常遇到用Web应用中控制操作本地文件,而之前都是使用一些富客户端技术比如flash,ActiveX,Silverlight等技术,面对文件JS就是个shit,就是个鸡肋。在HTML5的新的提供的FHTML5 File API 让JS可以轻松上阵了。

10、编辑、拖放、微数据、浏览历史管理、地理信息接口API、设备硬件操作API等很多的新功....

HTML5的未来?

当然HTML5不是孤立的,Javascript API的增强,让JS变成异常强大的未来的编程武器。CSS3带给未来Web应用也是极大的新的挑战。相信由于HTML5标准化的支持,相信未来Web技术真正的可以跑在任何的端,也让我们的Web应用更加的独立,更加的轻松的融入到各个端中,HTML5 就是未来!

总结:

通过上面HTML5的新特点,不难总结出HTML5=Javascript+HTML+CSS。HTML5的新特性带给开发者的是更友好更丰富的本地处理的API,更智能的更优雅的HTML标签,更强的本地处理的功能,通信也进一步加强。Google很早之前就意识到了,客户只要拥有一个浏览器就可以了,相信不久的将来现在的Web的应用不在对本地处理那么鸡肋,CS形式的客户端相信也会越来越少。

作为开发者,当Adobe公司宣布放弃Flash,把最大的精力放到HTML5的开发上的时候,那你可能会看到这些趋势,当微软选择了HTML5而放弃了Silverlight继续升级的时候,那你基本上也没有什么好选择的了。HTML5的发力,的确带给我们每个开发者都带来了机会。

当然以上只是笔者的观点,每个人都有阅读新技术的角度,欢迎大家转载讨论。

认识HTML5的更多相关文章

  1. 使用HTML5开发Kinect体感游戏

    一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...

  2. 读书笔记:《HTML5开发手册》--HTML5新的结构元素

    读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...

  3. HTML5 Boilerplate - 让页面有个好的开始

    最近看到了HTML5 Boilerplate模版,系统的学习与了解了一下.在各种CSS库.JS框架层出不穷的今天,能看到这么好的HTML模版,感觉甚爽.写篇博客,推荐给大家使用.   一:HTML5 ...

  4. 戏说HTML5

    如果有非技术人员问你,HTML5是什么,你会怎么回答? 新的HTML规范... 给浏览器提供了牛逼能力,干以前不能干的事...(确切地说应该是给浏览器规定了许多新的接口标准,要求浏览器实现牛逼的功能. ...

  5. nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

    第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Win ...

  6. Web大前端时代之:HTML5+CSS3入门系列

    准备来一波新技术,待续.... Old: 联系源码:https://github.com/dunitian/LoTHTML5 文档下载:https://github.com/dunitian/LoTD ...

  7. 07. Web大前端时代之:HTML5+CSS3入门系列~H5 地理位置

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 源码:https://github.com/duniti ...

  8. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

  9. HTML5 语义元素(一)页面结构

    本篇主要介绍HTML5增加的语义元素中关于页面结构方面的,包含: <article>.<aside>.<figure>.<figcaption>.< ...

  10. HTML5 input元素新的特性

    在HTML5中,<input>元素增加了许多新的属性.方法及控件.本文章分别对这三方面进行介绍. 目录 1. 属性 2. 方法 3. 新控件 1. 属性 <input>元素在H ...

随机推荐

  1. Xcode无法设置视图的 autosizing control原因

    转自:Xcode无法设置视图的 autosizing control原因 学习Xcode的iOS编程时,可能会发现Autosizing Control不见了,其原因很简单,因为你在设置中选择了Auto ...

  2. MySQL_前缀索引_建立

    -- 查看出现频率select count(*) as cnt,cityfrom sakila.city_demo group by city order by cnt desc limit 10; ...

  3. 各种电子面单_Api接口

    电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印电子面单.   ...

  4. 关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案【Qt】【 VS2010】

    近日因为换装硬盘重装了系统,于是不得不重新安装VS2010 Qt 这些个开发工具.安装过程都没什么问题,安装完了顺手点了个例子测试下好没好用,于是就出现了标题中的错误提示.之前处理过一次,时间久了就忘 ...

  5. C++: Why pass-by-value is generally more efficient than pass-by-reference for built-in (i.e., C-like) types

    A compiler vendor would typically implement a reference as a pointer. Pointers tend to be the same s ...

  6. Linq 用法笔记

    Linq中怎么用 between…and? var query = from p in context.Parent from c in context.Child.Where(x => p.c ...

  7. 在SSIS 的 64 位版本中不支持 Excel 连接管理器

    Microsoft sql server 2008 R2——> SQL SERVER Business Intelligence Development Studio 使用EXCEL数据源或目标 ...

  8. Math.random获得随机数

    function GetRandomNum(Min,Max){           var Range = Max - Min;           var Rand = Math.random(); ...

  9. input 데이터의 자판입력모드의 한글/영문 자동전환, 영문고정 하는 방법 웹프로그래밍 팁

      input 태그의 style 속성의 ime-mode 변경으로 한글/영문의 자동전환이나 영문만 입력이 되도록 할 수 있다.     style="ime-mode:activ ...

  10. 归约函数reduce&映射数组map(笔记)

    function forEach(array,action){ ;i<array.length;i++) action(array[i]); } function reduce(combine, ...