上一篇
html5提供了api
- 行业动态
- 2025-05-06
- 5
HTML5 提供丰富 API,支持多媒体、绘图、本地存储等,助力前端
HTML5核心API
本地存储(Web Storage)
- 功能:提供持久化数据存储,分为
localStorage
(长期存储)和sessionStorage
(会话存储) - 使用场景:替代Cookie存储大量数据,保存用户偏好设置等
- 示例:
// 存储数据 localStorage.setItem('username', 'John'); // 读取数据 console.log(localStorage.getItem('username')); // 删除数据 localStorage.removeItem('username');
Canvas绘图
- 功能:通过JavaScript绘制图形,支持动画和图像处理
- 核心方法:
getContext('2d')
:获取2D绘图上下文fillRect(x,y,width,height)
:绘制填充矩形strokeText(text,x,y)
:绘制文本
- 示例:
const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); ctx.fillStyle = 'blue'; ctx.fillRect(10, 10, 100, 50);
地理定位(Geolocation)
- 功能:获取设备地理位置信息
- 使用方法:
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
- 权限处理:需用户授权,浏览器可能弹出权限请求框
拖放API(Drag and Drop)
- 核心事件:
dragstart
:开始拖动时触发drop
:放置目标时触发
- 示例:
document.getElementById('draggable').addEventListener('dragstart', function(e) { e.dataTransfer.setData('text/plain', 'Drag data'); });
媒体API
- Audio/Video控制:
currentTime
:当前播放时间pause()
/play()
:控制播放状态
- 字幕支持:
<track>
标签添加WebVTT格式字幕
WebSockets通信
- 特点:全双工通信,低延迟,适合实时应用
- 基础用法:
const ws = new WebSocket('ws://example.com'); ws.onmessage = function(event) { console.log(event.data); }; ws.send('Hello Server');
IndexedDB
- 功能:客户端数据库,支持事务和索引
- 基本操作:
- 打开数据库:
indexedDB.open('dbname')
- 事务处理:
db.transaction([...], 'readwrite')
- 数据操作:
objectStore.put(data)
- 打开数据库:
API特性对比表
特性 | Web Storage | IndexedDB | Cookies |
---|---|---|---|
存储容量 | 5-10MB/域名 | 无限制 | 4KB/cookie |
数据结构 | 键值对字符串 | 对象数据库 | 键值对字符串 |
过期机制 | manual/session | 无 | 可设置过期时间 |
同步/异步 | 同步 | 异步 | 同步 |
适用场景 | 简单配置存储 | 复杂数据管理 | 用户标识 |
相关问题与解答
Q1:如何选择Web Storage和IndexedDB?
A1:若需存储简单键值数据且容量<5MB,优先使用Web Storage;若需要结构化数据存储、索引查询或大容量存储,应选择IndexedDB,例如用户表单缓存适合Web Storage,而离线应用数据管理适合IndexedDB。
Q2:Canvas与SVG在HTML5绘图中的区别是什么?
A2:主要区别体现在:
- 渲染方式:Canvas绘制位图,SVG保留矢量图形
- 性能表现:Canvas适合动态动画,SVG适合静态图形
- 交互性:Canvas需重绘实现交互,SVG可直接操作DOM元素
- 适用场景:游戏开发多用Canvas,图标设计