IndexedDB介绍

news/2024/11/8 3:11:32/

文章目录

  • 一、参考链接
  • 二、概念
    • 1、数据库
    • 2、对象仓库
    • 3、数据记录
    • 4、索引
    • 5、事务
  • 三、IndexedDB 把不同的实体,抽象成一个个对象接口
  • 四、注意事项
    • 1、event


一、参考链接

  • 优秀文章:http://www.ruanyifeng.com/blog/2018/07/indexeddb.html
  • 官网:https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

二、概念

1、数据库

  • 数据库是一系列相关数据的容器。每个域名都可以新建任意多个数据库
  • IndexedDB 数据库有版本的概念,同一个时刻,只能有一个版本的数据库存在
  • 如果要修改数据库结构(新增或删除表、索引或者主键),只能通过升级数据库版本

2、对象仓库

  • 每个数据库包含若干个对象仓库(object store),它类似于关系型数据库的表

3、数据记录

  • 对象仓库保存的是数据记录,每条记录类似于关系型数据库的行,但是只有主键和数据体
  • 主键用来建立默认的索引,必须是不同的,否则会报错
  • 数据体可以是任意数据类型
  • 主键可以是数据记录里面的一个属性,也可以指定为一个递增的整数编号

4、索引

  • 为了加速数据的检索,可以在对象仓库里面,为不同的属性建立索引

5、事务

  • 数据记录的读写和删改,都要通过事务完成,事务对象提供error、abort、complete三个事件,用来监听操作结果

三、IndexedDB 把不同的实体,抽象成一个个对象接口

  • 数据库实例 IDBDatabase
  • 对象仓库 IDBObjectStore
  • 索引 IDBIndex
  • 事务 IDBTransaction
  • 操作请求 IDBRequest
  • 指针: IDBCursor
  • 主键集合:IDBKeyRange

四、注意事项

1、event

  • event.target = 每次操作返回的request
  • const db=event.target.result = const db=dBOpenDBRequest.result
  • 每次操作的下一个操作都是在这次操作的成功的回调方法中进行,否则异常:Failed to read the 'result' property from 'IDBRequest': The request has not finished,意思是 请求尚未完成,在成功的回调方法中进行就是请求已经完成了
    • 比如
      //数据库打开成功回调函数
      dBOpenDBRequest.onsuccess=(event)=>{this.db=event.target.result
      }//查询单条数据
      //此时就会报上面那个错
      this.qteId=coreObjectStore.get(this.qteIdKey).result
      //正确做法
      coreObjectStore.get(this.qteIdKey).onsuccess=(event)=>{this.qteId=event.target.result.value
      }
      

http://www.ppmy.cn/news/11440.html

相关文章

无桥PFC的家族推演

1. 组合法构建无桥PFC PFC是一种AC-DC变换器,将交流输入电压分成正负半周,输出电压是直流,因此AC-DC变换器可以当做是两个DC-DC变换器的组合。在PFC的拓扑推演中,就是设计两个DC-DC变换器的工作模式。以下内容是基于对陈正格博士发…

centos7:jenkins+nodejs前端自动化部署

系统:centos7 nodejs版本:v16.18.1 npm版本:8.19.2 由于centos7最大只支持16.18.1版本,尽量让前端写代码时使用这个版本,linux系统如果要装高版本的node需要安装glibc库,很危险,尽量不要操作。 jenkin…

【Linux】gcc编译器的使用(程序的翻译过程)

目  录1 程序的翻译1.1预处理(进行宏替换)1.2 编译(生成汇编代码)1.3 汇编(生成机器可识别代码)1.4 链接(生成可执行文件或者库文件)1.5 gcc常用选项总结程序的翻译过程包括&#…

c语言操作符(下)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>: 讲解c语言中有关操作符的知识. 金句分享: ✨✨✨行程…

Go语言结构

Go语言结构 知识主要参考菜鸟教程。 简单实例 Go语言的基础组成有以下几个部分: 包声明引入包函数变量语句 & 发表达式注释 package mainimport "fmt"func main() {/*这是一行注释*/fmt.Println("hello,world") }上述程序各个部分组成&am…

telnet Connection refused 端口不通处理

文章目录一、telnet简述二、telnet Connection refused不通处理思路排查目的主机服务一、telnet简述 telnet一般用于测试本机到目的主机的目的端口网络通不通,telnet命令后面跟目的主机的IP或者域名,格式如下: telnet ${域名}|$…

【Linux】项目自动化构建工具—make/makefile

文章目录1. 什么是make/makefile?2. make/makefile的使用2.1 实例代码2.2 依赖关系和依赖方法2.3 项目清理2.4 make是如何确定是否编译的3. Linux第一个小程序—进度条3.1 \r 和 \n3.2 进度条小程序1. 什么是make/makefile? make是一个命令工具&#xf…

WSL---Windows Subsystem for Linux

WSL:Windows Subsystem for Linux,适用于Windows的Linux子系统;是一个在Windows10/11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。 1、介绍 1.1 文件系统 WSL支持的文件系统需要满足两个目标&#xff1…