H5 是国际对HTML5 的简称,其实我们每天都在接触它,它无处不在。从「围住神经猫」,「击打企鹅」,「在房祖名中找到张默」这些红极一时的火爆游戏,到如今微信冤家圈推送广告时宝马、VIVO 的广告,支付宝十年账单等等,面前都是 HTML5 技术。

<!–more–>

但是很多时分大家对 H5 看法都只是停留在「页面」这个层次上,甚至还会有一些曲解,下面就是关于 HTML5 的一些罕见的曲解:

#### HTML5 是一项新技术

HTML5 原本指 HTML 下一个主要的修订版本,所用到的技术很早就曾经成熟了,而 HTML5自身并非技术,而是规范。如今国际普遍说的 H5 是包括了 CSS3,JavaScript 的说法(严厉意义上说,这么叫并不适宜,但是曾经这么叫开了,就将功补过了)。

那能够有不懂技术的同窗会问,究竟什么是 HTML呢?

正轨的说法是,HTML(Hyper Text Markup Language,超文本标志言语) 是一门标志言语。所谓「超文本」就是指页面里可以包括图片,链接,甚至音乐等非文字元素;计算机之间需求沟通,那些是注释,那些是图片,都需求标志,标志这些的一套规范和规范就是 HTML。

#### HTML5 的功用不好

下面曾经说了,HTML5 自身并不是技术,而是一个规范,不触及功用效果。功用的效果往往是多方面的,软件层面(阅读器对 H5 的支持),硬件层面,包括代码都能够会招致功用效果。不过如今硬件的更新速度十分快,iPhone4S 的 CPU 是 A5,而 iPhone6 曾经是 A8了,按苹果的说法,速度共提升了7.5倍;移动端阅读器大局部是现代阅读器,对 HTML5 和 CSS3的支持都很好。

—-

HTML5 究竟是什么?

### 绘图功用

SVG 和 Canvas 都能使你在阅读器中画图,但是基本原理不一样。

#### SVG(Scalable Vector Graphics)

SVG 即是 `Scalable Vector Graphics`,是一种用来绘制矢量图的 HTML5标签。

SVG 基于 XML(EXtensible Markup Language,可拓展标志言语,相似于 HTML),这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事情处置器。

在 SVG 中,每个被绘制的图形均被视为对象。假设 SVG 对象的属性发作变化,那么阅读器可以自动重现图形。

#### Canvas

Canvas,望文生义,是画布,经过 JavaScript 来绘制 2D 图形。

Canvas 是逐像素停止渲染的。

在 canvas 中,一旦图形被绘制完成,它就不会继续失掉阅读器的关注。假设其位置发作变化,那么整个场景也需求重新绘制,包括任何或许已被图形掩盖的对象。

#### WebGL(Web-based Graphics Language)

WebGL 是一个跨平台、收费的底层 3D 绘图 API 的 Web 规范,是一套用于渲染 2D 和 3D 图形的规范图形库。作为一项弱小的图形技术,WebGL 可以很好的出现 3D 效果。iOS8 宣布支持 WEBGL 后,百度全景在移动 Web 端支持 WebGL 图形技术了,可以更逼真的模拟街道环境。

#### Canvas 与 SVG 的主要不同点

Canvas | SVG

———— | ————-

依赖于分辨率 | 不依赖于分辨率(矢量)

不支持事情处置器 | 支持事情处置器

弱的文本渲染才干 | 最适宜带有大型渲染区域的运用顺序(比如说 Google 地图)

可以以.png 或 .jpg 格式保管结果图像 | 复杂度高会减慢渲染速度(任何过度运用 DOM 的运用都不快)

最适宜图像密集型的游戏,其中的许多对象会被频繁绘制 | 不适宜游戏运用

### 动画的运用

普通来说,也就是两种。一种是 CSS3 动画,一种是 JavaScript 动画。但是很多状况下,JavaScript 也会用于改动 CSS 属性来完成动画。

假设是复杂交互的动画,还是用 JavaScript 比拟好。

详细如何处置,那又是比拟大的话题了,在这就不细说。

### 最后说几句

当年 Facebook 坚持 HTML5 转投原生开发的,而今微信却在中国让 HTML5 大红大紫,不得不说时势弄人。

当年 Facebook 采用的是混合式开发,相似于明天我们说的外面是前端代码,然后套了个 PhoneGap 的壳子,打包变成 iOS 运用了。混合式开发普通会占比,但是 Facebook 的 HTML 的局部占比过大,而且 当年 iOS App 里调用的 Webview 的引擎和阅读器 Safari 里用的不一样,对技术支持的也不好。

在明天,iOS8 的 Webkit 库,运用 WKWebView 来替代以前的 UIWebView,并且运用 Nitro JavaScript 引擎,这意味着一切第三方阅读器运转 JavaScript 可以跟 Safari 一样快。

提供最优质的资源集合

立即查看 了解详情