关于 IndexedDB,存储容量的上限是怎么被限定和管理的?
考察说明
考查对 IndexedDB 存储容量限制机制的理解,包括浏览器配额、分组和用户控制。
回答思路
- 【回答框架 1】IndexedDB 的存储大小没有固定数值,而是由浏览器厂商依据可用磁盘空间动态分配。Chrome 等浏览器采用配额管理,通常将可用空间与已存储数据总量比例作为上限,而非一次性预留固定容量。
- 【回答框架 2】不同来源(站点)的数据被分组管理,每个源有独立配额。当配额不足时,浏览器会提示清除或扩展,用户可通过浏览器设置调整。
- 【回答框架 3】In private mode 或禁用存储时,容量限制会不同。开发者可调用 navigator.storage.estimate 获取当前源的使用量和配额估算。
- 【回答框架 4】实际写入需注意配额耗尽错误(QuotaExceededError),应监听 storage 事件并设计备份或清理策略。
- 【回答框架 5】移动端和桌面端策略存在差异,且浏览器版本更新可能调整算法,需以实际环境验证为准。
- 【关键点 1】IndexedDB 容量由浏览器动态计算,非固定值。
- 【关键点 2】不同站点有独立配额,总体受磁盘空间制约。
- 【关键点 3】通过 navigator.storage.estimate 可获取估算配额与使用量。
- 【关键点 4】写入超限会触发配额错误,需要异常处理。
- 【关键点 5】用户可手动调整存储设置,但开发者不能强制配置。
- 【易错点 1】不可假设所有浏览器配额算法一致,需兼容测试。
- 【易错点 2】配额耗尽时不一定立即报错,可能延迟,不能仅靠错误事件处理。