本文仅梳理indexedDB基础概念以及对象,具体执行需要自行查阅api
IndexedDB
概念
HTML5离线存储数据的一种解决方案,NOSQL类型,浏览器提供的数据库,使用索引高效搜索数据进行读写和管理操作。
特点
- 键值对存储:内部采用对象仓库(Object Store)存放数据,所有类型都可以直接存入(包括javascript对象),每一个数据对象对应为唯一主键(不可重复)。
- 异步:防止拖慢网页
- 支持事务:transaction,安全性更高。
- 同源限制:每一个数据库都有他对应的域名,网页只能访问自身域名对应的数据库,不能跨域访问。
- 存储空间大:比如chrome一条记录不能超过130M,FireFox没有限制
- 支持二进制存储:ArrayBuffer和Blob
常用对象
- indexedDB对象:浏览器提供,作为开发者的操作接口。
- IDBRequest对象:表示打开数据库连接,indexedDB.open()方法和indexedDB.deleteDatabase()方法返回这个对象。(IDBOpenDBRequset对象继承了IDBRequest对象,提供两个额外事件监听属性)
- IDBDatabase对象:打开之后从IDBOpenDBRequset.result属性上获取该对象,代表连接的数据库,之后对数据库的操作都是通过这个对象完成。
- IDBObjectStore对象:代表一个对象仓库可以对其中的数据进行增删改查创建索引,由IDBDatabase.createObjectStore()方法创建删除,由transaction.objectStore获取。
- IDBTransaction对象:该对象使用异步操作数据库事务,所有读写操作都通过这个对象进行,由IDBDatebase.transaction()方法创建并返回,执行的顺序按照创建的顺序,而不是发出请求的顺序。
- IBDIndex对象:代表数据库索引,该对象可以获取数据库里边的记录,数据记录的主键默认就是带索引,IDBIndex对象用于给其他键建立持久性索引。
- IBDCursor对象:指针对象,用来遍历数据仓库(IDBObjectStore或索引IDBIndex的记录),由IDBObjectStore.openCursor()方法创建返回。
- IDBKeyRange对象:代表数据仓库里边的一组主键,根据这组主键们可以获取对应记录。
转载:https://blog.csdn.net/qq_31352839/article/details/88831241
查看评论