Web Worker 是 HTML5 专为解决 JS 单线程阻塞问题设计的 API,核心作用是创建独立后台线程。它能把大数据计算、复杂解析、加密解密等耗时任务,从主线程剥离出去执行,完全不影响页面渲染、按钮点击等交互,避免网页卡死。 Worker 和主线程通过postMessage和onmessage通信,它不能操作 DOM、访问window对象,杜绝线程安全问题。它让前端可以处理重型逻辑,同时保持页面流畅运行,完美弥补了 JavaScript 单线程的短板,是提升大型网页性能的关键工具。
WebSocket 是 HTML5 原生的全双工实时通信协议,基于 TCP 建立持久连接,彻底解决 HTTP 单向、无状态、需要轮询的痛点。 工作流程很简单:客户端先发起 HTTP 握手请求,服务器验证通过后,双方建立长连接,连接建立后就不会断开。客户端和服务器可以随时双向发送数据,不用等待请求响应,数据包头极小,传输效率远超轮询。 原生 API 极易使用,创建实例后,用onopen监听连接、onmessage收消息、send发消息。它延迟极低、开销极小,是聊天、弹幕、实时监控的首选技术。
WebRTC 是 HTML5 原生实时音视频通信技术,无需插件、纯浏览器运行,特点非常突出。第一,点对点直连,客户端直接通信,不经过服务器中转,延迟极低;第二,原生支持音视频采集、编码、降噪、回声消除,功能完整;第三,跨平台兼容,桌面、移动端所有主流浏览器都支持;第四,全程加密传输,安全可靠;第五,API 简洁,快速实现视频通话、在线会议。 它完全替代了 Flash,让网页轻松实现高质量实时音视频,是在线教育、直播、远程协作的核心技术。
可扩展 Web 消息(Channel Messaging)是 HTML5 的专属通道通信 API,用来实现多上下文之间的安全定向通信。 它解决了传统postMessage广播通信的缺陷,创建一对一私有消息通道,不同窗口、iframe、Web Worker 之间通过端口收发消息,精准传输不干扰其他模块。支持跨域通信,不受同源策略限制,数据更安全、无全局污染。 它让微前端、多标签页协作、嵌套 iframe、Worker 通信更稳定,是大型项目模块化消息传递的实用工具,避免了复杂应用的消息混乱问题。
Geolocation 是 HTML5 原生定位 API,使用非常简便:调用navigator.geolocation.getCurrentPosition获取一次位置,watchPosition持续追踪位置变化。 工作原理:浏览器会自动适配设备,优先用 GPS 精准定位,无 GPS 则通过 WiFi、基站、IP 地址网络定位,返回经纬度、精度等数据。使用前必须获得用户授权,保护隐私。 应用场景极广:外卖配送、地图导航、同城服务、天气定位、共享设备查找等。它让网页拥有和原生 App 一样的定位能力,是移动端 Web 应用的标配功能。
HTML5 原生自带拖放 API,无需第三方库,就能实现元素拖拽、文件拖入。 实现核心步骤:给拖拽元素添加draggable="true",监听dragstart记录数据;目标区域监听dragover(必须阻止默认行为)、drop接收数据。 核心事件包含开始、拖拽、进入、放置、结束,通过dataTransfer传递参数,支持拖拽元素、文本、本地文件。 可快速实现列表排序、文件拖放上传、组件拖拽布局,API 简洁、跨浏览器兼容,是前端交互开发中最常用的原生功能之一。
File API 和 FileReader 是 HTML5前端操作本地文件的核心接口,无需上传服务器就能处理文件。 File API 负责获取用户选择的文件,提供文件名、大小、类型等信息;FileReader 负责读取文件内容,支持文本、图片、二进制数据。 交互方式:用input[type=file]选择文件,或拖放获取文件,调用readAsText、readAsDataURL等方法读取。 可实现图片预览、文本读取、文件格式校验、前端压缩,仅在浏览器沙盒运行,无权限风险,让网页安全便捷地处理本地文件,大幅提升交互体验。
History API 是 HTML5 增强的历史记录操作接口,核心价值是实现前端无刷新路由,是 Vue、React 等单页应用的底层基础。 传统页面切换会刷新浏览器,而它通过pushState、replaceState,在不刷新页面的前提下,修改地址栏 URL、添加 / 替换历史记录,配合popstate事件监听路由变化。 它解决了单页应用 URL 与页面内容脱节的问题,实现无刷新切换页面,用户体验大幅提升。还能存储页面状态数据,是现代前端路由的标准实现方案。
全屏 API 是 HTML5 原生接口,能让网页一键进入全屏模式,无需任何插件。 使用方法很简单:调用 DOM 元素的requestFullscreen()开启全屏,document.exitFullscreen()退出全屏。可以监听fullscreenchange获取状态变化,fullscreenerror捕获失败。 支持指定单个元素(视频、Canvas、图片)全屏,也能全屏整个页面。只需处理少量浏览器前缀兼容,即可适配所有现代浏览器。 常用于视频播放、图片预览、网页游戏、数据大屏,让网页拥有原生 App 级的全屏体验。
HTML5 开放了硬件设备访问能力,让网页接近原生 App 的功能,所有特性都需要用户授权。 主要包括:摄像头 / 麦克风(MediaDevices.getUserMedia)、陀螺仪 / 加速度计(deviceorientation事件)、设备震动(navigator.vibrate)、电池状态(Battery API)、触屏交互。 使用方式:调用对应 API 申请权限,获取硬件数据或控制设备。比如调用摄像头实现扫码、拍照;陀螺仪实现体感游戏;震动实现交互反馈。 它极大拓展了 Web 应用的边界,让纯网页也能调用硬件,实现丰富的原生功能。
HTML5 通信 API 核心是WebSocket和SSE,替代传统轮询,实现低延迟实时交互。 WebSocket 是全双工通信,建立持久 TCP 连接,客户端和服务器可双向随时发消息,适合聊天、弹幕、高频数据交互。 SSE 是服务器单向推送,基于 HTTP 长连接,轻量简单,适合通知、数据更新。 使用时,WebSocket 创建实例收发消息;SSE 用EventSource监听推送。两者开销极低、延迟极短,配合事件处理,就能实现稳定的实时交互,覆盖所有网页实时业务场景。