1.狭义的理解HTML5就是新的html协议,作为一个超文本传输协议,就是多了几个标签而已。
2.广义上的HTML5包含HTML5/ES6+/CSS3/WebGL/Canvas/SVG/Web RTC等整个Web技术家族的观点。现在流行的什么H5产业、H5游戏都是在说广义上的HTML5。
HTML关注的是如何写页面(Page),HTML5关注的是如何开发应用(APP)!
以前所谓的B/S分布式架构,绝大部分业务逻辑和代码量在服务器端,前端只收到服务器端动态生成的HTML和附加的简单的JS/CSS/img,是一种非常不平衡的架构。而HTML5是把更多的业务逻辑和运算量放在了客户端,让客户端成为真正独立的APP,B/S架构也就更加平衡。尤其是Google提出PWA之后,HTML5 APP具有了更多的优势。
从Page跨越到APP有下面5个标志性特征:
- 能够访问资源。
- 能够访问底层设备。
- 和外界有更多的通信方式。
- 能够独立部署、分发、升级。
- 有开发框架,工程师有专门的职位。
访问资源:
原来的HTML无法访问文件系统操作磁盘,需要靠Flash完成。
原来的HTML无法访问内存,Copy/Past 操作也要依靠Flash。
原来的HTML在浏览器内只有可怜的cookie可以存点东西,现在有了Session Storage,Local Storage,IndexedDB,Web SQL。
- 本地数据存储
- 访问本地文件
- 本地 SQL 数据
- 缓存引用
- Javascript 工作者
- XHTMLHttpRequest 2
访问底层设备:
可以调用摄像头、GPS、蓝牙...
更自由的通信方式:
例如Notification API, Web RTC
能够独立部署、分发、升级:
HTML5开发的前端应用,可以相对于服务器端独立部署,甚至放在CDN上。浏览器可以先加载前端APP,然后让前端APP和服务器端通信。
开发框架:
以前只有JQuery,然后慢慢有了DOJO、Mooltools,但是这些都不是框架,只能算类库(library)或工具箱(toolkit)。
HTML5开始出现真正的框架,Angularjs,VUE,Redux。
以前写页面的要么是美工、要么是服务器端的人。现在有了响亮的名字:web前端工程师
1. 如何区分 html 页面与 h5 页面?
文档声明上,
html:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
html5:<!doctype html>