HTML5的崛起之路——不只是励志剧,还是宫斗剧

2024-01-26 13:30

本文主要是介绍HTML5的崛起之路——不只是励志剧,还是宫斗剧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HTML5火了。近两年,浏览器厂商们纷纷宣布支持HTML5,开发商们纷纷宣布转用HTML5开发产品,HTML5游戏厂商、HTML5游戏引擎提供商们也纷纷获得了至少千万级别的融资。

HTML5真的火了。那么HTML5究竟是什么呢?

众所周知,我们的整个互联网是由无数网页组合而成的,而网页的本质就是超文本标记语言HTML。可以说,HTML正是互联网的基石。

随着时代的发展,我们对互联网的需求越来越多,可作为基石的HTML标准却还停留在上世纪90年代的HTML4上。

落后的技术无法满足我们的需求,于是我们转而借助第三方多媒体框架例如Flash,来让我们的网站更加炫酷;我们又开发了各种APP,来让我们可以在移动终端上享受互联网服务。这时候,就像电影《大圣归来》中的孙悟空一样,HTML的第五次重大修改——

HTML5,带着众多的优点归来了:

1、 它使页面可直接播放多媒体元素,你可以忘掉第三方插件了;

2、 它的Web属性带来跨平台能力,一次开发,各系统各终端普遍适用;

3、 它更加语义化、标准化,更加易用;

4、 本地存储;

5、 它还具备实时更新能力,用户只需刷新便可获得最新内容;

6、 它使内容可被搜索引擎检索,利于SEO;

7、 相对原生APP而言,它使你的产品无需安装,易于分发;

……

拥有这么多令人垂涎的优势,HTML5自然会火。那么是谁造就了HTML5?它又是怎么崛起的呢?

故 事的开始是个悲剧。1997年,W3C(万维网联盟)发布HTML4后,宣布停止HTML的版本迭代演进并解散了HTML工作组,转向开发更为严谨的 XHTML标准。原因是HTML标准太过“宽容”,即使你的HTML网页里有几处错误,浏览器依然会通过自动纠错的方式保证页面可以正确显示。

因此,错误也就永远无人改正。而XHTML是严格的,不容许页面存在错误。W3C试图用严格的标准来使互联网发展更加规范。出发点虽好,但效果不佳,因为改 用XHTML标准将导致互联网99%的HTML网页需要重写。而Opera、Mozilla基金会、苹果这些浏览器厂商则在2004年组建了民间组织 WHATWG,开始尝试在更加“宽容”的传统HTML框架下,开发具备向后兼容性的下一代HTML。

就在W3C还在争论是XHTML2还是HTML5的时候,互联网格局已经发生了变化。

2005年前后,随着宽带的普及和电脑性能的提升,人们不再满足于仅用互联网来看新闻和发邮件。

于是,消耗更高带宽的娱乐形式,流视频和网页游戏诞生了。此时的HTML错过了这次机会,这块新需求被浏览器插件满足了,那就是Flash。

Adobe收购Macromedia后通过Flash攫取了大量的财富,这让Google、苹果等作为W3C主席单位的各浏览器厂商很是不甘。

2006年10月,WHATWG在HTML上取得突破性进展。于是为了尽快夺回Adobe抢占的市场,W3C决定停止XHTML的工作,转而与WHATWG合作,共同推进开发不需插件就能在移动端播放多媒体的下一代HTML。

2008年,第一个HTML5草案诞生。同年,IE、Chrome、FireFox、Safari几大浏览器巨头开始相继支持HTML5。

到了2010年,乔布斯乔帮主公开封杀Flash,力挺HTML5,彻底遏制了Flash的发展。

移动互联网时代的到来,使得HTML5的优势更加凸显。

2011 年,由于移动浏览器对HTML5的普遍支持,和iOS对Flash的强势拒绝,使得Adobe不得不宣布停止为移动设备开发Flash播放器。这一年的 HTML5风头正劲,据统计全球前100的网站已有34%在使用HTML5。迪士尼也在这一年斥巨资收购了一家HTML5游戏引擎开发商,意图打造 HTML5游戏来避开苹果App Store的控制和30%的分成。前途已经一片光明HTML5,没想到竟要经历一场巨大的风暴。

很多大公司都在推动着HTML5的发展,其中以Facebook的扎克伯格最为疯狂。作为技术极客的他誓要利用HTML5的Web APP来打破iOS和Android的垄断。

Facebook加入W3C后,牵头成立了MobileWeb工作组。这个小组的目标是让由HTML5开发的Web APP能够达到原生APP的体验。

与此同时Facebook用HTML5开发了自己的Web APP,希望这样可以让自己不会受到苹果和Android的控制。但其结果却是该Web APP的用户体验极差,与Twitter等竞争对手的原生APP相比差距巨大。

2012年,扎克伯格宣布Facebook应用放弃HTML5部分,改为纯原生方式开发。一句“押注HTML5是Facebook最大失误”彻底将HTML5打入了冷宫。

笔者认为,在2012年HTML5确实还不具备开发优秀移动APP的能力。

一方面是外部条件不具备,比如硬件性能以及浏览器内核对HTML5的支持程度不足;

一方面是HTML5技术本身还有不完善之处;

还有一方面是工程师的能力不足。

同年,HTML5的标准制定者W3C和WHATWG也表示无法继续合作了。前者希望制定一个死的标准,颁布之后再不修改;后者希望标准能够跟随市场及技术的 发展而动态调整。前者拉到了微软撑腰,后者则有苹果和Google支持。另外,原本一直是HTML5坚定后盾的苹果也不再允许纯Web APP套壳登录 App Store。

在灭掉Flash时HTML5为冲锋枪,但移动端干掉Flash后,苹果却是要维护自身封闭生态系统的巨大利益的。因此细看之下HTML5的崛起之路其实不只是励志剧,还是宫斗剧。

在经历了上述两次巨震之后,HTML5着实沉默了一段时间。奚落者有之,嘲笑者有之,仿佛HTML5已死。但在此期间,HTML5依然显现了强大的生命力。它所带来的诸多优势始终吸引着开发者们继续探索。

终于,在2014年10月底,W3C宣布HTML5历时8年终于定稿。

image

这个时机,笔者认为不早不晚,刚刚好:

首先,从2011年iPhone4S的A5处理器,到现在iPhone6的A8处理器,按苹果官方的说法,速度提升了约7.5倍。这7.5倍的速度提升,抹平了太多了性能问题;

其次,苹果、Android两大系统及各个浏览器经过时间的沉淀对HTML5的支持也越来越好;

最后,经过时间的积累,有大量的HTML5开发引擎和工具在2014年涌现出来,为HTML5的爆发铺平了道路。

如今,随着《围住神经猫》刷爆朋友圈,人们又开始了对HTML5的关注。而且随着各方条件的相继备齐,HTML5显露出了燎原之势,彻底火了。

纵 观目前为止HTML5标准的发展历程,可以说就是商业利益不断博弈的过程。它的诞生,既是为了满足人们的需求,也是为了达到洗牌利益重新分配的目的。它的 强大,既是为了造福全球,也是为了击败竞争对手。就结果而言,巨头们出于各自的目的造出了强大的HTML5。它的崛起,意味着变革将至。谁能在这场变革中 更好的利用它,谁便可以占得先机。

那么在这场变革中,我们又该如何看待呢?

HTML5作为一套新的标准,代表着移动互联网的趋势和未来。几乎所有人都能预见到它巨大的潜力。但它在各个领域具体是以怎样的形态落地,如何改变人们的生活或是改变行业的业态,人们很难预测。这需要我们不断地探索和思考。

HTML5的天花板有多高,正是由我们每一个从业者决定的。

HTML5崛起之路的后半程,就靠我们来完成了。

文章转载自 开源中国社区 [http://www.oschina.net]

这篇关于HTML5的崛起之路——不只是励志剧,还是宫斗剧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646954

相关文章

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

CSS @media print 使用详解

《CSS@mediaprint使用详解》:本文主要介绍了CSS中的打印媒体查询@mediaprint包括基本语法、常见使用场景和代码示例,如隐藏非必要元素、调整字体和颜色、处理链接的URL显示、分页控制、调整边距和背景等,还提供了测试方法和关键注意事项,并分享了进阶技巧,详细内容请阅读本文,希望能对你有所帮助...

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

HTML5 data-*自定义数据属性的示例代码

《HTML5data-*自定义数据属性的示例代码》HTML5的自定义数据属性(data-*)提供了一种标准化的方法在HTML元素上存储额外信息,可以通过JavaScript访问、修改和在CSS中使用... 目录引言基本概念使用自定义数据属性1. 在 html 中定义2. 通过 JavaScript 访问3.

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效