请说说indexedDB有哪些基本操作?

IndexedDB在前端开发中是一种强大的客户端数据库,它允许在浏览器中存储和检索大量结构化数据。以下是IndexedDB的基本操作:

  1. 打开数据库

    • 使用window.indexedDB.open(databaseName, version)方法打开数据库。如果数据库不存在,则会创建一个新的数据库。这个方法返回一个IDBRequest对象,可以通过监听其onerroronsuccessonupgradeneeded事件来处理打开数据库的操作结果。
  2. 创建对象存储(Object Store)和索引

    • onupgradeneeded事件回调中,可以通过db.createObjectStore(storeName, options)方法创建对象存储,类似于关系型数据库中的表。其中,storeName是对象存储的名称,options是配置对象,可以指定主键和是否自动递增。
    • 创建索引使用objectStore.createIndex(indexName, keyPath, options)方法,其中indexName是索引的名称,keyPath是索引所在的属性,options是配置对象,可以指定该属性是否包含重复的值。
  3. 添加数据

    • 通过创建一个事务,然后使用objectStore.add(data)方法向对象存储中添加数据。这个方法返回一个IDBRequest对象,可以监听其onsuccessonerror事件来处理添加数据的操作结果。
  4. 读取数据

    • 可以通过objectStore.get(key)方法根据主键读取数据,或者使用索引和游标(Cursor)来查询满足特定条件的数据。游标可以遍历存储对象中的所有内容。
  5. 更新数据

    • 使用objectStore.put(data)方法可以更新对象存储中的数据。如果数据的主键已经存在,则该方法会更新该主键对应的数据;否则,会添加一条新的数据。
  6. 删除数据

    • 可以通过objectStore.delete(key)方法根据主键删除数据,或者使用游标和索引来删除满足特定条件的数据。
  7. 关闭数据库

    • 尽管在很多情况下浏览器会自动管理数据库的关闭,但在长时间不使用数据库或完成所有操作后,显式地关闭数据库连接是一个好习惯。这可以通过调用数据库对象的close()方法来实现。

需要注意的是,IndexedDB的操作是异步的,因此需要使用回调函数或Promise来处理操作结果。此外,IndexedDB还受到同源策略的限制,只能被相同域下的页面访问。

总的来说,IndexedDB提供了在浏览器中存储和检索大量结构化数据的强大功能,适用于需要高性能、离线支持和大量数据存储的应用场景。

posted @   王铁柱6  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示