突然想看看这个怎么用所以来学习下(没写完随后在更新)
特点:
MDN解释:一种底层API,用于在客户端存储大量的结构化数据,而且支持索引查询实现高性能搜索,跟storage相比这个存储更多,相对较少的情况没必要用storage就好(个人理解)
这个东西只需要指定数据库模式,打开与数据库的连接,然后检索和更新一系列事务。API都是异步的,有需要可以引入同步的。
主要对象
每个域名(严格的说,是协议 + 域名 + 端口)都可以新建任意多个数据库。
操作
新建数据库
var indexedDBStore = window.indexedDB.open(databaseName, version);
// databaseName 没有则创建 有则打开,版本号为整数
事件回调
// 错误
indexedDBStore.onerror = function (e){
// something code...
}
// 成功
var db
indexedDBStore.onsuccess = function (e){
db = indexedDBStore.result // 版本存在的情况
// something code...
}
// 版本升级
// 传递的版本参数大于目前浏览器里该名字的数据库的版本参数
// 版本升级后 代码需要在这里面完成 因为触发了这个监听函数
indexedDBStore.onupgradeneeded = function (e) {
db = e.target.result;
}
// 新建表
var objectStore = db.createObjectStore('person',{keyPath: 'id'})
// 这样会新建一个person的表格 主键是id
// 严谨些的话是应该先判断 再新建
!db.objectStoreNames.contains('person')
// 每次添加删除修改表、数据库的时候(表内键值对除外)需要把对应版本号+1(比现在版本号大就行)