核心结论
离线应用应按数据用途、访问方式和权威来源划分存储层级,而不能把浏览器存储视为无限、永久且天然一致的本地数据库。少量、可丢失的界面偏好可使用 localStorage;仅需保留到当前标签页会话结束的状态可使用 sessionStorage;大量结构化数据、索引查询和事务更新应使用 IndexedDB;应用外壳、静态资源及可按请求匹配的网络响应适合由 Cache API 配合 Service Worker 管理。所有层级都要设计容量预算、版本迁移、过期清理、冲突解决和故障恢复。
底层机制
localStorage 与 sessionStorage 提供同步字符串键值访问,读取、