31

前端——IndexedDB

 5 years ago
source link: https://blog.csdn.net/qq_31352839/article/details/88831241?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文仅梳理indexedDB基础概念以及对象,具体执行需要自行查阅api

IndexedDB

HTML5离线存储数据的一种解决方案,NOSQL类型,浏览器提供的数据库,使用索引高效搜索数据进行读写和管理操作。
  1. 键值对存储:内部采用对象仓库(Object Store)存放数据,所有类型都可以直接存入(包括javascript对象),每一个数据对象对应为唯一主键(不可重复)。
  2. 异步:防止拖慢网页
  3. 支持事务:transaction,安全性更高。
  4. 同源限制:每一个数据库都有他对应的域名,网页只能访问自身域名对应的数据库,不能跨域访问。
  5. 存储空间大:比如chrome一条记录不能超过130M,FireFox没有限制
  6. 支持二进制存储:ArrayBuffer和Blob

常用对象

  1. indexedDB对象:浏览器提供,作为开发者的操作接口。
  2. IDBRequest对象:表示打开数据库连接,indexedDB.open()方法和indexedDB.deleteDatabase()方法返回这个对象。(IDBOpenDBRequset对象继承了IDBRequest对象,提供两个额外事件监听属性)
  3. IDBDatabase对象:打开之后从IDBOpenDBRequset.result属性上获取该对象,代表连接的数据库,之后对数据库的操作都是通过这个对象完成。
  4. IDBObjectStore对象:代表一个对象仓库可以对其中的数据进行增删改查创建索引,由IDBDatabase.createObjectStore()方法创建删除,由transaction.objectStore获取。
  5. IDBTransaction对象:该对象使用异步操作数据库事务,所有读写操作都通过这个对象进行,由IDBDatebase.transaction()方法创建并返回,执行的顺序按照创建的顺序,而不是发出请求的顺序。
  6. IBDIndex对象:代表数据库索引,该对象可以获取数据库里边的记录,数据记录的主键默认就是带索引,IDBIndex对象用于给其他键建立持久性索引。
  7. IBDCursor对象:指针对象,用来遍历数据仓库(IDBObjectStore或索引IDBIndex的记录),由IDBObjectStore.openCursor()方法创建返回。
  8. IDBKeyRange对象:代表数据仓库里边的一组主键,根据这组主键们可以获取对应记录。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK