js indexedDB存储
时间: 2023-07-23 19:08:26 浏览: 103
IndexedDB 是 HTML5 中的一种浏览器本地数据库,它可以在客户端存储结构化数据。相比于传统的 Cookie 和 LocalStorage,IndexedDB 更适合存储大型数据和支持高级查询功能。
下面是一个简单的例子,展示了如何在 JavaScript 中使用 IndexedDB 存储数据:
```js
// 打开数据库
let request = indexedDB.open('myDatabase', 1);
request.onerror = function(event) {
console.log('数据库打开报错');
};
request.onsuccess = function(event) {
let db = request.result;
console.log('数据库打开成功');
// 存储数据
let transaction = db.transaction(['customers'], 'readwrite');
let objectStore = transaction.objectStore('customers');
let customer = {
name: 'John Doe',
email: 'john.doe@example.com'
};
let request = objectStore.add(customer);
request.onerror = function(event) {
console.log('数据存储失败');
};
request.onsuccess = function(event) {
console.log('数据存储成功');
};
};
request.onupgradeneeded = function(event) {
let db = event.target.result;
// 创建一个对象仓库
let objectStore = db.createObjectStore('customers', { keyPath: 'id', autoIncrement:true });
// 定义对象仓库中的数据结构
objectStore.createIndex('name', 'name', { unique: false });
objectStore.createIndex('email', 'email', { unique: true });
console.log('数据库升级成功');
};
```
这个例子中,我们首先打开了一个名为 `myDatabase` 的数据库,并创建了一个名为 `customers` 的对象仓库。然后,我们向 `customers` 对象仓库中添加了一个名为 `John Doe` 的客户。最后,我们通过 `console.log` 输出了一些信息,以便确认操作是否成功。
需要注意的是,如果数据库版本号发生变化,就会触发 `onupgradeneeded` 事件,我们可以在这个事件中创建新的对象仓库或者更新已有的对象仓库。
另外,IndexedDB 是异步 API,因此我们需要通过回调函数来获取操作结果。
阅读全文