无需登录 数据私有 本地保存

IndexedDB存储查看器 - 数据库浏览

10
0
0
0

IndexedDB 存储查看器

请选择一个数据库开始浏览。本工具可查看当前域名下所有 IndexedDB 数据库及其存储的数据。

常见问题与知识点

IndexedDB 是浏览器内置的低级异步 NoSQL 数据库,用于在客户端存储大量结构化数据。它支持事务、索引、游标遍历,存储空间远大于 localStorage(通常可达数百MB甚至更多,取决于浏览器和磁盘空间)。IndexedDB 基于同源策略,每个域名下的数据库相互隔离,非常适合离线应用、PWA、缓存大型数据集等场景。

  • 存储容量:localStorage 通常限制在 5-10MB,而 IndexedDB 可存储数百MB甚至更多。
  • 数据结构:localStorage 仅支持字符串键值对;IndexedDB 支持对象、数组、二进制数据(Blob、File)等复杂类型。
  • 查询能力:IndexedDB 支持索引和范围查询,localStorage 只能遍历所有键。
  • 异步 vs 同步:IndexedDB 使用异步 API,不会阻塞主线程;localStorage 是同步的。
  • 事务支持:IndexedDB 提供完整的事务机制,保证数据一致性。

有几种方式可以清除 IndexedDB 数据:
1. 使用本工具选择数据库后点击删除按钮。
2. 在浏览器开发者工具中:Application → IndexedDB,右键删除数据库。
3. 通过 JavaScript 代码:indexedDB.deleteDatabase('数据库名')
4. 在浏览器设置中清除站点数据(会同时清除 Cookies、localStorage 等)。

存储限制因浏览器和操作系统而异。一般来说,Chrome 允许使用磁盘可用空间的 60%(上限约 2GB-无限制),Firefox 允许约 2GB(可申请更多),Safari 允许约 1GB。当接近配额时,浏览器会触发 QuotaExceededError 异常。可以通过 navigator.storage.estimate() 查看当前使用量和配额。

可能的原因:
1. 同源限制:IndexedDB 严格遵循同源策略,只能访问当前域名下的数据库。
2. 浏览器兼容性:indexedDB.databases() 在某些旧版浏览器或 Safari 中可能不被支持,导致无法列出数据库。
3. 隐私模式:在浏览器无痕/隐私模式下,IndexedDB 可能受限或被完全禁用。
4. 数据库被其他标签页占用:如果其他标签页正在进行版本升级事务,可能会暂时阻塞访问。

对象存储(Object Store)类似于关系数据库中的"表",是数据的容器。每个对象存储有一个键路径(keyPath),用于唯一标识每条记录。键可以是自动生成的数字(自增主键),也可以是数据中的某个属性。

索引(Index)是对对象存储中数据的额外排序方式,允许通过非主键字段快速查询数据。索引可以是唯一的(如邮箱)或非唯一的(如年龄段)。创建索引后,可以使用 IDBIndex.get()IDBIndex.openCursor() 高效查询。