IndexedDB是浏览器提供的支持索引、事务和异步操作的本地NoSQL数据库,适用于离线场景下持久化存储大量结构化数据,容量可达几百MB。

IndexedDB 是浏览器提供的本地数据库,适合在离线场景下持久化存储大量结构化数据。它比 localStorage 更强大:支持索引、事务、异步操作、二进制数据(如 Blob),且容量通常达几百 MB(具体取决于浏览器和用户设置)。
核心概念要先搞清
IndexedDB 不是传统 SQL 数据库,没有表、SELECT 语句,而是基于对象仓库(object store)、键路径(keyPath)、索引(index)和事务(transaction)的 NoSQL 模式:
- 数据库(IDBDatabase):整个 IndexedDB 实例,一个域名下可建多个,但需显式打开
- 对象仓库(Object Store):类似“表”,每个数据库可有多个,必须在版本升级时创建(不能运行时新增)
- 键(Key):每条记录的唯一标识,可以自动生成(autoIncrement)或由字段指定(keyPath)
- 索引(Index):在非主键字段上建立,用于快速查询(如按用户名查用户)
- 事务(IDBTransaction):所有读写操作必须在事务中进行,支持只读(readonly)和读写(readwrite)模式
基础用法:打开、建库、增删查
以下是一个完整示例,实现一个简单的待办事项(todo)存储:
1. 打开并初始化数据库
立即学习“Java免费学习笔记(深入)”;
首次打开会触发 onupgradeneeded,此时可建对象仓库和索引:
标签: javascript java 浏览器 app 持久化存储
还木有评论哦,快来抢沙发吧~