首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IndexedDB 基础

简单而言,IndexedDB 就是一个基于事务操作的 key-value 型前端数据库。其 API 大多是异步的。 IndexedDB 是一个比较复杂的 API,涉及不少概念。...事件以等待操作完成 在操作结果上进行一些操作(可以在 request 对象中找到) IndexedDB 的使用 创建一个 IndexedDB 数据库 使用 IndexedDB 的第一步是打开数据库,使用...我们可以通过监听 indexedDB.open() 方法返回的一个 IDBOpenDBRequest 对象的 success 、error 和 upgradeneeded 事件来执行相应的操作。...transaction() 接受两个参数: 第一个是你要操作的对象仓库名称。第二个是你创建的事务模式。传入 readonly 时只能对对象仓库进行读操作,无法写操作。...可以传入readwrite 进行读写操作操作数据 有了数据库、对象仓库、事务之后,我们就可以操作数据了: add(): 增加数据。

58020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    javascript 操作浏览器数据库IndexedDB

    为此,大多数操作以请求的形式执行,这些请求会异步执行,产生成功的结果或错误。绝大多数 IndexedDB 操作要求添加 onerror 和 onsuccess 事件处理程序来确定输出。...IndexedDB 操作时不会锁死浏览器,用户依然可以进行其他操作,这与 LocalStorage 形成对比,后者的操作是同步的。异步设计是为了防止大量数据的读写,拖慢网页的表现。3 支持事务。...IndexedDB 支持事务(transaction),这意味着一系列操作步骤之中,只要有一步失败,整个事务就都取消,数据库回滚到事务发生之前的状态,不存在只改写一部分数据的情况。...使用 IndexedDB 数据库的第一步是调用 indexedDB.open()方法,并给它传入一个要打开的数据库名称。...任何时候,只要想要读取或修改数据,都要通过事务把所有修改操作组织起来,注意request.onsuccess和 request.onupgradeneeded 都是异步得,所以下方得增删改查 都需要 在异步里操作

    19820

    IndexedDB 教程

    IndexedDB 很适合存储大量数据,它的 API 是异步调用的。IndexedDB 使用索引存储数据,各种数据库操作放在事务中执行。IndexedDB 甚至还支持简单的数据类型。...事务性 在 indexedDB 中,每一个对数据库操作是在一个事务的上下文中执行的。...基于请求 对 indexedDB 数据库的每次操作,描述为通过一个请求打开数据库,访问一个 object store,再继续。...IndexedDB API 天生是基于请求的,这也是 API 异步本性指示。对于你在数据库执行的每次操作,你必须首先为这个操作创建一个请求。当请求完成,你可以响应由请求结果产生的事件和错误。...IDBIndex:数据库表的索引 IDBObjectStore:数据库表 IDBTransaction:事务 IDBRequest:机会是所有 indexedDB 操作的返回值,indexedDB

    1.6K20

    indexedDB 基本使用

    来源:党黎明 mr-dang.github.io/javascript/2017/12/09/indexedDB基本使用.html indexedDB 简介: indexedDB 是一种使用浏览器存储大量数据的方法...indexedDB 有以下特点: indexedDB 是 WebSQL 数据库的取代品 indexedDB遵循同源协议(只能访问同域中存储的数据,而不能访问其他域的) API包含异步API和同步API两种...它通过索引(index)所产生的指针(cursor)来完成查询操作 一、使用indexedDB的基本模式 打开数据库并且开始一个事务。 创建一个 objecStore。...构建一个请求来执行一些数据库操作,像增加或提取数据等。 通过监听正确类型的 DOM 事件以等待操作完成。...在操作结果上进行一些操作(可以在 request 对象中找到) 二、创建、打开数据库 indexedDB 存在于全局对象window上, 它最重要的一个方法就是open方法, 该方法接收两个参数: dbName

    1.6K100

    PWA 系列(三)——IndexedDB

    PWA 系列(三)——IndexedDB IDB 操作的基本步骤是 open 方法打开数据库 ? 然后是创建数据库 store 对象仓库 ?...打开数据库 window.indexedDB 是一个 IDBFactory 对象,调用对象 open 方法返回的是一个 IDBOpenDBRequest 请求,监听 success 事件,e.target.result...getDB(dbName) { // 1️⃣ return new Promise((resolve, reject) => { const request = window.indexedDB.open...另外还有在索引上调用的两种游标使用方法,见 MDN 文档:https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API/Using_IndexedDB...这里面就没有事务 一旦操作数据,那么你就必须首先创建一个事务并设置模式,然后通过存储空间来发起请求 ; (async function () { let getIDBRequest = window.indexedDB.open

    79720

    JavaScript IndexedDB 完整指南

    本文将通过一个小教程向你介绍 IndexedDB,并将 IndexedDB 与其他可用选项进行比较。...IndexedDB:一个内置在浏览器中的完整文档数据库,没有存储限制,它允许你异步访问数据,这对于防止复杂操作阻塞呈现和其他活动非常有效。这就是我们将在下面深入讨论的内容。...在这些方式中,localStorage 是进行简单操作和存储少量数据的好选择。对于更复杂或常规的操作IndexedDB 可能是更好的选择,特别是在需要异步获取数据的情况下。...const indexedDB = getIndexDB() // console.log(indexedDB) const request = indexedDB.open("todoDB", 1)...const indexedDB = getIndexDB() // console.log(indexedDB) const request = indexedDB.open("todoDB", 1)

    1.9K20

    indexedDB_INDEX函数

    indexedDB介绍 原生介绍 indexedDB 是一个前端数据持久化解决方案(即前端缓存),由浏览器实现。 0. 兼容性 1.特点 基于文件存储。...创建一个数据库 window.indexedDB.open(dbName, version) 示例: const dbRequest = window.indexedDB.open('demo', 1...【因为indexedDB 是异步的,所以它所有的操作都必须建立一个请求(request),请求的结果将被封装在request实例中返回】 如果不存在指定的数据库,则创建数据库,然后连接数据库,返回...事务 所有记录的增删改查都要在事务中进行 之所以引入事务,是为了保证操作顺序和可靠性 顺序:事物中所有的操作必须排队进行 可靠性: 在【同一个事务】中,对于【同一张表】的一组操作有一个失败,之前的都回滚...两个参数: objectStoresArray, 一个数组,包含了当前事务中要操作的所有表的名称 readWriteMode: 本次操作是只读操作还是读写操作 readonly: 只读

    1K50

    放弃localStorage,拥抱IndexedDB

    所以在这个前提下,我们就可以使用HTML5提供的新API,IndexedDB! IndexedDB 具有以下特点。...支持事务:IndexedDB支持事务,如果有用过mysql和mongoDB的人就很清楚了,能确保我们多个操作只要其中一步出现问题,可以整体回滚。...但是因为使用indexedDB和使用localStorage是完全不一样的,基本上都是异步操作而且还要考虑一些低版本的手机可能不支持的情况,所以要封装中间件,同样的调用,根据设备对indexedDB的兼容情况...,自动决定使用indexedDB还是localStorage。...总结 indexedDB是完全可以替代localStorage的存在,而且为了以后更加方便的使用indexedDB,让indexedDB的api兼容同步调用,以及更像localStorage的使用,特地封装了一个

    91710

    JavaScript IndexedDB 完整指南

    JavaScript IndexedDB 完整指南 本文将通过一个小教程向你介绍 IndexedDB,并将 IndexedDB 与其他可用方式进行比较。...IndexedDB:一个内置在浏览器中的完整文档数据库,没有存储限制,它允许你异步访问数据,这对于防止复杂操作阻塞呈现和其他活动非常有效。这就是我们将在下面深入讨论的内容。...在这些方式中,localStorage 是进行简单操作和存储少量数据的好选择。对于更复杂或常规的操作IndexedDB 可能是更好的选择,特别是在需要异步获取数据的情况下。...const indexedDB = getIndexDB() // console.log(indexedDB) const request = indexedDB.open("todoDB", 1)...const indexedDB = getIndexDB() // console.log(indexedDB) const request = indexedDB.open("todoDB", 1)

    1.7K10

    基础| 实现网页瞬开,indexedDB的这几个基本操作你必须懂

    indexedDB 有以下特点: 1.indexedDB 是 WebSQL 数据库的取代品 2.indexedDB遵循同源协议(只能访问同域中存储的数据,而不能访问其他域的) 3.API包含异步API和同步...它通过索引(index)所产生的指针(cursor)来完成查询操作 正文 一、使用indexedDB的基本模式 1.打开数据库并且开始一个事务。 2.创建一个 objecStore。...3.构建一个请求来执行一些数据库操作,像增加或提取数据等。 4.通过监听正确类型的 DOM 事件以等待操作完成。...在操作结果上进行一些操作(可以在 request 对象中找到) 二、创建、打开数据库 indexedDB 存在于全局对象window上, 它最重要的一个方法就是open方法, 该方法接收两个参数: •dbName...现在,我们通过事务向数据库indexedDB-test的 对象存储空间movies中插入数据: 通过事务对象transaction,在objectStore()方法中指定对象存储空间,就得到了可以对该对象存储空间进行操作的对象

    2.9K10

    indexeddb库 ZangoDB的使用

    ZangoDB是一个indexedDB的类MongoDB轻量级接口库,主要是为了更轻松快速的编写indexedDB相关的操作。...关于indexedDB: IndexedDB - MDN Github: ZangoDB 在MDN的推荐中介绍了几款不同的轻量级类库 来简化indexdb的使用,其中dexie.js也是不错的,但是在多条件筛选上并没有支持...IndexedDB: 教导主任先进入x年x班的教室,然后说“全体到操场报道” indexedDB打开仓库(objectStore)涉及的比较多,而ZangoDB就十分简单了: // 这是一个同步操作...Cursor 游标 游标支持一系列的数据操作,类似于管道中的操作符,以方法的形式实现,均返回一个Cursor对象即可以链式多重操作。...Operators 操作符 由于ZangoDB是一个模拟MongoDB的接口实现,所以其提供的操作符是和MangoDB类似的。

    4K30

    本地储存之 Cookie、webStorage、indexedDB

    我们先来通过表格学习下这几种存储方式的区别 特性 Cookie localStorage sessionStorage indexedDB 数据声明周期 一般由服务器生成,可以设置过期时间 除非被清理,...| 属性 | 作用 | | value | 如何用于保护用户登录态,应该将值加密 | | http-only | 不能通过 JS 访问 Cookie,减少 XSS 攻击 | | secure | 只能在协议为...过量的 Cookie 会带来巨大的性能浪费 不能跨域 #Web Storage #localStorage 本地永久储存,除非手动清除,否在一直存在 大小:5M左右 用于储存稳定的资源:如 CSS、js...IndexedDB 是一个运行在浏览器上的非关系型数据库。...理论上来说,IndexedDB 是没有存储上限的(一般来说不会小于 250M)。它不仅可以存储字符串,还可以存储二进制数据。

    1K30

    JS操作cookie

    一、 Cookie 本篇文章主要讲述对cookie的操作,如 设置、读取、检查、删除 。 首先了解下cookie的基本知识: 关于cookie Cookie,有时也用其复数形式 Cookies。...新建cookie.js 一般情况下,为了在项目里能友好的使用一个功能,那么就会将其封装,然后模块导出使用。此时,我们可以在目录下新建文件夹util,在util中将各种封装的工具类放入。...此时我们可以在 util 下新建 cookie.js 文件。 2. 设置cookie 这类使用场景较多,例如登录或将部分信息存储到cookie等场景都会用到。...清除cookie 在进行退出登录等操作时,一般我们需要将 cookie 进行清除,操作比较简单,接收到要清除的 cookie 名后操作即可,如下: // 清除cookie export function...引入挂载 在 main.js操作: // ... import Vue from 'vue' // 引入 import { setCookie, getCookie, checkCookie, clearCookie

    9.8K30
    领券