申请的博客已经有好长时间了,今天有空来发第一篇博文吧。
在合肥Google开发者社区群里,有不少的朋友对HTML5技术感兴趣,大家讨论了很多,意见想法不一,很多人都存在疑问;我从2010年就开始关注和了解HTML5方面的技术,针对群里朋友提出的一些典型的问题来阐述和回答。
一、HTML5为何而生?
有朋友在群里问:“HTML5为何而生?”,我开玩笑的反问了句:“你为何而生?”;虽然是开玩笑,不过这两个问题有相似点就是发展的必然性!
大家知道HTML是超文本标记语言,是一个标准;从93年发布的第一个标准以来,依次经过了2.0、3.2、4.0等版本,到今天发布的HTML5的草案!所以HTML5不是一门特殊的技术,是HTML标准发展到今天的一个草案的标准!
在我们做web开发和学习的历程中,我们从一开始使用着简单的文字、链接、表格等就能满足自己的需求,到后来需要用到Javascript、ajax、css等来满足我们的页面的需求,再到后来连这些都无法满足我们,使得我们需要用到Flash、Silverlight等来满足我们的富网页应用。所以我们很明白我们为什么要用到Flash、Silverlight,因为HTML4已经无法满足我们的要求了;所以说HTML5是必然性,是发展的趋势!
二、HTML5技术会不会昙花一现?
有人提到有很多技术都会昙花一现,那么在学习新技术的时候需要衡量下这门技术是否值得学习,不能盲目地去学习;这个问题很有价值,对未来的事我不敢肯定,但我先阐述我个人的观点。
1、软件外包:软件发展到今天,给我们明显的变化感觉是:B/S的软件代替了更多的C/S的软件,现在的软件外包公司大多都是用Java或.net开发软件,我们去移动、电信等,大家都能看到客服人员使用的是B/S架构的软件来操作的,不是以前的C++等编写的C/S软件;所以以B/S架构的软件应用基本成为主流了。
2、互联网产品:web发展到今天,已经到了不是几个文字、链接和图片那么简单了;我们可以做个尝试,假设你的计算机上不安装任何软件,只有网络,你是否可以办公、学习和娱乐? 我们来看一下是否可以:
· 办公 -> Google Doc / Office 365
· 音乐 -> QQ / 虾米 等等...
· 电影 -> 奇艺、腾讯、搜狐 等等...
· 新闻 -> 网易、新浪、QQ 等等...
· 聊天 -> web QQ / 微博 /旺旺网页版 等等...
· 输入法 -> 搜狗云输入法 、 QQ云输入法、百度云输入法 等等...
· 游戏 -> 4399、新浪为游戏 等等...
· 邮件 -> 网易、QQ、Gmail 等等...
就不一一列举了,这表明了只要一个浏览器(当然别老盯着IE9一下内核的浏览器看),基本上可以满足我们日常的娱乐、学习甚至工作。看到这里,难道没有联想起Google的Chromium OS吗?虽然她是真的昙花一现就没消息了,但是我们没法否定这个是趋势!就像微软十几年前就推出平板一样。
3、移动互联网:当前最热的领域之一恐怕就是移动互联网了吧,针对上面的问题,不用解释过渡,只有一点:目前市面上的智能手机,90%以上的手机支持HTML5。
三、HTML5会代替Flash等技术吗?
从技术来说,HTML5目前的技术和性能相对于Flash/Silverlight要差得多!
1、从传统PC端来说,HTML5想取代Flash,理由只有一个:就是不需要安装如何插件;那么这个理由能否站得住脚?毕竟性能比人家差很多!个人觉得在未来很长一段时间HTML5在传统PC端取代不了Flash!
2、从移动平台来说,大家都知道Flash在移动平台是没戏了,那么剩下给开发者的技术就两种:Native和HTML5了。那web方面理所当然只剩下HTML5了。
四、为什么要用HTML5?
这个问题不仅仅是个技术问题!
1、首先从技术上来说,我们将Native和HTML5比较一下:
· 开发周期: Native要比HTML5长的多
· 各种平台: Native需要开发不同版本,那么需要不同技术人员,开发成本大幅度增加;而HTML5只需要一次开发,使用类似PhoneGap封装一下就可以在很多平台运行了。
· 功能性能: HTML5肯定不如Native了! 杀鸡焉用牛刀,看你的项目需求了!
2、从市场和利益角度来说:
a). HTML5快速开发:可以迅速对项目进行更变以达到市场需求
b). 命运掌握在自己手里: 这点很重要,打个比方,公司开发了一款苹果应用,上线谁说了算? 不是老总,不是项目总监;是苹果说了算。寄人篱下啊,没办法!!!
c). 核心利益:你的一款应用,下载一次卖10块钱;你顶多赚7块钱;因为苹果说我要拿3块。每个月下1000次,你每个月赚7000块,可能你觉得还好了。试想如果是一个公司,每个月下载量是10万,公司每个月要付给苹果30万甚至更多,而且他还控制了你的生杀大权;我想你肯定会说:凭什么?
五、HTML5有哪些新技术?
下面我列举下几个方面的技术点,可能不是很全。
1、语义化标记:增加了更多的语义化的标记 (header, footer, section ..etc.),这方面应该是更搜索引擎优化有关的
2、多媒体:增加Audio/Video,不需要第三方插件,可直接在网页中播放音频和视频
3、动画游戏: 增加Canvas,可直接使用JavaScript在网页中绘图或动画;这里分2D和WebGL(硬件加速)
4、离线应用: 资源文件或代码文件等可以缓存到客户端,并可在有更新的时候更新
5、数据存储: 客户端数据库和localStorage
6、拖拽支持: 可以拖拽本地文件或文件夹到网页的拖拽区域内
7、地理信息: 支持获取当前所在的地理位置
8、网络通讯: 支持websocket通讯,大大增强网络通讯效率
9、多线程: webworker,真正多线程执行JavaScript代码
结束语:
任何技术都有它存在的必要性,直到它被新技术所取代,我不贬低任何技术,也不夸大任何技术;合适的技术用在合适的地方就是好技术。不需要觉得HTML5多么厉害、多么牛、多么地令人振奋,它只是web发展的过程中的产物而已! 而技术的发展是由市场来驱动的,我们只需要顺应市场的发展,保持平静的心态就好了。