上一篇
html5的api
- 行业动态
- 2025-05-12
- 6
HTML5 API提供Canvas绘图、本地存储、Geolocation定位、WebSocket通信等,支持音视频控制、拖放交互及离线应用,显著提升网页多媒体处理与
HTML5 API 详细说明
本地存储(Local Storage)
- 用途:在客户端长期存储数据(无过期时间),用于保存用户偏好、应用状态等。
- 方法:
localStorage.setItem(key, value)
:存储数据。localStorage.getItem(key)
:获取数据。localStorage.removeItem(key)
:删除指定数据。localStorage.clear()
:清空所有数据。
- 示例:
localStorage.setItem('username', 'John'); console.log(localStorage.getItem('username')); // John
Canvas API
- 用途:动态绘制图形(如图表、动画)。
- 核心方法:
getContext('2d')
:获取2D渲染上下文。fillRect(x, y, width, height)
:绘制填充矩形。beginPath()
/closePath()
:创建路径。stroke()
/fill()
:描边或填充路径。
- 示例:
const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); ctx.fillRect(10, 10, 100, 50); // 绘制矩形
Geolocation API
- 用途:获取设备地理位置(需用户授权)。
- 方法:
navigator.geolocation.getCurrentPosition(successCallback, errorCallback)
- 示例:
navigator.geolocation.getCurrentPosition( (pos) => { console.log(`Latitude: ${pos.coords.latitude}`); }, (err) => { console.error('Error:', err.message); } );
Web Storage(Session Storage)
- 与 Local Storage 区别:
| 特性 | Local Storage | Session Storage |
|———————|———————|———————-|
| 生命周期 | 永久(手动清除) | 会话结束(标签页关闭)|
| 用途 | 长期数据存储 | 临时数据存储 |
Web Workers
- 用途:在后台线程执行脚本,避免阻塞主线程。
- 使用步骤:
- 创建 Worker 文件(如
worker.js
)。 - 实例化 Worker:
const worker = new Worker('worker.js');
- 通信:
worker.postMessage(data)
和worker.onmessage
。
- 创建 Worker 文件(如
- 示例:
// main.js const worker = new Worker('worker.js'); worker.postMessage({ num: 5 }); worker.onmessage = (e) => console.log(`Result: ${e.data}`);
Video/Audio API
- 核心属性:
currentTime
:当前播放时间。duration
:总时长。pause()
/play()
:控制播放。
- 示例:
const video = document.querySelector('video'); video.play(); video.addEventListener('ended', () => console.log('Video ended'));
Server-Sent Events (SSE)
- 用途:服务器向客户端单向推送数据(如实时更新)。
- 示例:
const eventSource = new EventSource('server.sse'); eventSource.onmessage = (e) => console.log(`Data: ${e.data}`);
Drag and Drop API
- 核心事件:
dragstart
:开始拖动。dragover
:拖动经过目标。drop
:释放拖动元素。
- 示例:
const dropZone = document.getElementById('drop-zone'); dropZone.addEventListener('drop', (e) => { e.preventDefault(); console.log('File dropped:', e.dataTransfer.files[0]); });
相关问题与解答
问题1:Local Storage 和 Cookie 的区别是什么?
- 解答:
| 特性 | Local Storage | Cookie |
|———————|———————|———————|
| 大小限制 | 5~10MB | 4KB |
| 生命周期 | 手动清除或永久有效 | 可设置过期时间 |
| 发送方式 | 不随请求发送 | 每次请求自动发送 |
| 用途 | 长期存储非敏感数据 | 会话管理、用户标识 |
问题2:Canvas 和 SVG 绘制图形的区别是什么?
- 解答:
- Canvas:位图绘制,适合动态动画和复杂场景,但缩放会失真。
- SVG:矢量绘制,适合静态图形(如图标),支持无限缩放且不失