WebAPI(Web Application Programming Interface)是HTML5所提供的用于开发WEB应用程序的一系列编程接口。
HTML5已逐步成为开发WEB应用程序最理想的前端平台。WEB应用都是以网页的形式运行在浏览器中,因此也常常被称为网页应用程序。
HTML4时代,AJAX开发模型已经非常流行,通过XmlHttpRequest异步通信再加上动态操作DOM,使Web应用程序变回富客户端应用成为可能,这样的WEB应用程序被称为Rich Internet Application,简称RIA。
而进入HTML5时代之后,受益于大量新增加的WEB API,在单一HTML页面里实现一个完整复杂的WEB应用程序成为可能,这样的WEB应用程序被称为Simple Page Application,简称SPA。
HTML5所提供的众多API可以以下几个大组:
HTML4提供的API基本上只有DOM API、Image API和Cookie API等,绝大多数API都是HTML5才开始有的,下表简单的示意了一下WebAPI的历史。
| API | HTML4 | HTML5 | |
|---|---|---|---|
| DOM | ○ | ○(※1 | |
| 图形 | Canvas | × | ○ |
| SVG | × | ○ | |
| WebGL | × | ○ | |
| 多媒体 | Audio | × | ○ |
| Image | ○ | ○ | |
| Video | × | ○ | |
| 客户端存储 | Cookie | ○ | ○ |
| Storage | × | ○ | |
| IndexDB | × | ○ | |
| LocalFileSystem | × | ○ | |
| 本地操作系统文件 | × | ○ | |
| 通信 | XmlHttpRequet | ○ | ○(有扩展) |
| WebSocket | × | ○ | |
| 跨文档 | × | ○ | |
| 设备访问 | 电池管理 | × | ○ |
| 摄像头 | × | ○ | |
| 地理定位 | × | ○ | |
| 屏幕亮度调节 | × | ○ | |
| 设备方向检测 | × | ○ | |
| 设备震动 | × | ○ | |
| 桌面通知 | × | ○ | |