IndexedDB知识点总结

IndexedDB是一个低级API,用于存储大量结构化数据(包括文件/ blob)的客户端

特性

  1. IndexedDB是一个事务数据库系统,索引表系统
  2. 使用IndexedDB执行的操作是异步完成的,以免阻塞应用程序
  3. 无法跨域访问数据

术语

  1. 数据库

信息存储库,通常包括一个或多个对象存储库

  1. 对象存储

数据存储在数据库中的机制。对象存储持久保存记录,这些记录是键值对。对象存储中记录根据排序键以升序。

  1. 数据库版本

每个数据库一次只有一个版本,数据库不能同时存在多个版本,高版本会代替低版本。

  1. 数据库连接

通过打开数据库创建的操作。给定的数据库可以同时具有多个连接。

  1. 请求

完成对数据库的读写操作。每个请求代表一次读或写操作。

  1. 索引

索引是持久键值存储,其记录的值部分是引用的对象库中记录的关键部分,自动填充

每条记录都有一个值,可以包含任何可以用JavaScript表示的值,包括布尔值,数字,字符串,日期,对象,数组,正则表达式,未定义和null。

流程

  1. 打开一个数据库。
  2. 在数据库中创建对象库。
  3. 启动事务并发出请求以执行某些数据库操作,如添加或检索数据。
  4. 通过侦听正确的DOM事件等待操作完成。
  5. 对结果做一些事情(可以在请求对象上找到)。

接口

检测获取

// 获取indexedDB
export const indexedDB = (win: any = window): IDBFactory =>
  win.indexedDB || win.webkitIndexedDB || win.mozIndexedDB || win.msIndexedDB;
export const IDBTransaction = (win: any = window) =>
  win.IDBTransaction ||
  win.webkitIDBTransaction ||
  win.msIDBTransaction || { READ_WRITE: 'readwrite' };
export const IDBKeyRange = (win: any = window) =>
  win.IDBKeyRange || win.webkitIDBKeyRange || win.msIDBKeyRange;
// 检测
export const isSupportIndexedDB = () => {
  const db = indexedDB();
  if (db) {
    return true;
  } else {
    console.error(`您的浏览器不支持indexed db`);
    return false;
  }
};
复制代码
打开数据库
const request = (name,version)=>indexedDB().open(name,version)
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值