JavaScript Web APIs 深度解析

中等 🟡Js/Ts
4 个标签
预计阅读时间:5 分钟
JavaScriptWeb APIsDOMFetch

JavaScript Web APIs 深度解析

Web APIs 是浏览器提供的一组接口,使 JavaScript 能够与浏览器和操作系统交互。

DOM API

DOM 操作:

选择元素:querySelector、querySelectorAll
创建元素:createElement、createTextNode
修改元素:appendChild、removeChild、replaceChild
属性操作:setAttribute、getAttribute、removeAttribute

事件处理:

事件监听:addEventListener、removeEventListener
事件类型:click、input、scroll、resize
事件对象:event.target、event.preventDefault、event.stopPropagation
事件委托:利用事件冒泡

DOM 遍历:

父节点:parentNode、parentElement
子节点:childNodes、children
兄弟节点:nextSibling、previousSibling、nextElementSibling、previousElementSibling

DOM 样式:

style 属性:element.style.property
classList:add、remove、toggle、contains
getComputedStyle:获取计算后的样式

Fetch API

基本用法:

fetch() 函数:返回 Promise
请求配置:method、headers、body、mode
响应处理:response.json()、response.text()、response.blob()

请求类型:

GET:获取资源
POST:提交数据
PUT:更新资源
DELETE:删除资源
PATCH:部分更新

错误处理:

网络错误:Promise 拒绝
HTTP 错误:需要手动检查 status
超时处理:AbortController

高级特性:

跨域请求:CORS
认证:headers、credentials
缓存:cache 选项
重定向:redirect 选项

存储 API

localStorage:

持久存储
最大容量约 5MB
字符串键值对
同源策略

sessionStorage:

会话存储
标签页关闭后清除
最大容量约 5MB
字符串键值对

IndexedDB:

结构化存储
较大容量
异步 API
支持索引

Cookie:

小型文本文件
自动发送到服务器
最大容量约 4KB
过期时间控制

其他常用 Web APIs

地理位置 API:

navigator.geolocation
getCurrentPosition:获取当前位置
watchPosition:监视位置变化

通知 API:

Notification 构造函数
requestPermission:请求权限
发送桌面通知

媒体 API:

MediaDevices:访问摄像头和麦克风
MediaRecorder:录制媒体
AudioContext:音频处理

Web Workers:

后台线程
避免阻塞主线程
消息传递
适合计算密集型任务

Service Workers:

网络代理
离线缓存
推送通知
后台同步

Web Sockets:

双向通信
实时数据
低延迟
适合聊天、游戏等

最佳实践

性能优化:

减少 DOM 操作
使用事件委托
合理使用存储
优化网络请求

兼容性:

检测 API 支持
提供降级方案
使用 polyfill

安全性:

验证用户输入
防止 XSS
保护存储数据
使用 HTTPS

代码组织:

模块化 API 调用
错误处理
响应式设计
可访问性

实际应用

前端应用:

表单处理
数据可视化
实时通信
离线功能

交互体验:

拖拽功能
键盘导航
触摸事件
动画效果

工具开发:

浏览器扩展
开发工具
性能分析工具

PWA (渐进式 Web 应用):

离线访问
安装到主屏幕
推送通知
后台同步