iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在HTML5 客户端中使用IndexedDB数据库
  • 600
分享到

怎么在HTML5 客户端中使用IndexedDB数据库

2023-06-09 12:06:29 600人浏览 八月长安
摘要

今天就跟大家聊聊有关怎么在HTML5 客户端中使用IndexedDB数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。IndexedDB介绍IndexedDB是一种能在浏览器中持久

今天就跟大家聊聊有关怎么在HTML5 客户端中使用IndexedDB数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

IndexedDB介绍

IndexedDB是一种能在浏览器中持久的存储结构化数据的对象数据库,并且为WEB应用提供了丰富的查询能力。

相比于Web sql数据库它更加简单,而且官方标准中关于Web SQL的工作已经停止。

相比于Web Storage,IndexedDB存储空间是无上限且永久的。

创建数据库

IndexedDB是按域名分配独立空间,一个独立域名下可以创建多个数据库,每个数据库可以创建多个对象存储空间(表/对象仓库),一个对象存储空间可以存储多个对象数据(索引的字段)。

function openDB(){    var request = indexedDB.open(dbName,dbVer);//如果数据库存在就打开,如果数据库不存在就去新建    request.onsuccess = function(e){    }    request.onerror = function(e){    }    //创建新数据库,或者数据库版本号被更改的时候出发onupgradeneeded事件,并执行回调函数    request.onupgradeneeded = function(e){            }}

indexedDB.open方法用于创建数据库,里面传两个参数(数据库名,数据库版本),request.onupgradeneeded方法在创建新数据库,或者数据库版本号改变时调用

创建对象存储空间

request.onupgradeneeded = function(e){        db = e.target.result;        //判断是否有这个对象仓库的存在        if(!db.objectStoreNames.contains('Users')){            //如果对象仓库不存在,创建一个新的对象仓库(keyPath,主键 ; autoIncrement,是否自增),会返回一个对象(objectStore)            var store = db.createObjectStore('Users',{keyPath:'id',autoIncrement:true});            //指定可以被索引的字段,unique字段是否唯一,可以创建多个索引            store.createIndex('username','username',{unique:false})        }    }

store.createIndex创建索引字段,里面传三个参数(索引命名,索引字段,是否唯一)

事务(transaction)

对IndexedDB的查询和更新都是包含在一个事务(transaction)中,以此来保证这些操作要么一起成功,要么一起失败。

function dataHandle(data){    //创建事务对象    var ts = db.transaction('Users','readwrite');    //通过事务对象获取对象仓库    var store = ts.objectStore('Users');    //向仓库添加数据    var req = store.put(data);    req.onsuccess = function(){            }}

对仓库store的操作:

  • put()添加数据,参数为要保存的对象,如果数据主键(keypath)已存在相同的则更改数据。

  • add()添加数据,参数为要保存的对象,如果数据主键(keypath)已存在相同的则保存失败。

  • delete()删除数据,传入参数为目标数据的主键。get()获取数据,传入参数为目标数据的主键。

遍历数据

通过游标cursor检索范围内的对象仓库中的数据

var range = IDBKeyRange.lowerBound(1);//指定游标检索范围var req = store.openCursor(range);//创建游标dbData = [];req.onsuccess = function(){    var cursor = this.result;    if(cursor){        dbData.push(cursor.value);        cursor.continue();//循环读取数据直到结束    }else{            }}

IDBKeyRange主要的几个方法:

  • IDBKeyRange.bound(n1, n2, false, false); 范围从n1到n2的主键,第三四个参数为是否包含n1或n2

  • IDBKeyRange.only(n);范围一个主键

  • IDBKeyRange.lowerBound(n, false);大于n的主键集合

  • IDBKeyRange.upperBound(n, false);小于n的主键集合

查询数据

能被查询的数据需要被store.createIndex()创建过索引

var store = ts.objectStore('Users');    var index = store.index("username");//打开数据库索引    var range = IDBKeyRange.only(keyName);//传递一个单键(索引的值)获取range    var req = index.openCursor(range);

删除数据库

indexedDB.deleteDatabase("数据库名称");

看完上述内容,你们对怎么在html5 客户端中使用IndexedDB数据库有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 怎么在HTML5 客户端中使用IndexedDB数据库

本文链接: https://www.lsjlt.com/news/255860.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在HTML5 客户端中使用IndexedDB数据库
    今天就跟大家聊聊有关怎么在HTML5 客户端中使用IndexedDB数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。IndexedDB介绍IndexedDB是一种能在浏览器中持久...
    99+
    2023-06-09
  • 如何在HTML5中使用indexedDB 数据库
    如何在HTML5中使用indexedDB 数据库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。连接数据库一个网站可以有多个 indexedDB 数据库,但每个数据库的名称是唯一...
    99+
    2023-06-09
  • 使用instantclient客户端连接oracle数据库
    (1)首先下载instantclient_11_2 (解压如下) 修改instantclient_11_2/tnsnames.ora 文件,将你需要链接的oracle服务器地址写上...
    99+
    2022-11-13
  • 怎么在python中使用socket连接客户端
    本篇文章给大家分享的是有关怎么在python中使用socket连接客户端,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python的优点有哪些1、简单易用,与C/C++、Jav...
    99+
    2023-06-14
  • 如何使用instantclient客户端连接oracle数据库
    本篇内容介绍了“如何使用instantclient客户端连接oracle数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!(1)首先下载i...
    99+
    2023-06-30
  • 数据库管理客户端工具SQLPro Studio Mac怎么用
    今天就跟大家聊聊有关数据库管理客户端工具SQLPro Studio Mac怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。SQLPro Studio for Mac是macOS平...
    99+
    2023-06-05
  • 怎么在java中使用SocketChannel实现一个客户端
    怎么在java中使用SocketChannel实现一个客户端?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spr...
    99+
    2023-06-14
  • 远程客户端连接MysqL数据库太慢怎么办
    这篇文章主要讲解了“远程客户端连接MysqL数据库太慢怎么办”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“远程客户端连接MysqL数据库太慢怎么办”吧!远程...
    99+
    2022-10-18
  • 怎么使用这个Twitter客户端在Linux终端中发推特
    小编给大家分享一下怎么使用这个Twitter客户端在Linux终端中发推特,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过 Rainbow Stream 跟上T...
    99+
    2023-06-16
  • 怎么在python中利用socketserver处理客户端
    今天就跟大家聊聊有关怎么在python中利用socketserver处理客户端,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Jav...
    99+
    2023-06-14
  • SpringBoot和redis中怎么使用Lettuce客户端
    这篇文章给大家介绍SpringBoot和redis中怎么使用Lettuce客户端,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。重写连接工厂实例,更改其LettuceClientConfiguration 为开启拓扑更新...
    99+
    2023-06-20
  • 怎么在C#中使用MJPEG实现一个客户端功能
    怎么在C#中使用MJPEG实现一个客户端功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。环境:服务端MJPEG服务器使用的是手机的DroidCam,很方便的一个MJPEG服务...
    99+
    2023-06-06
  • 数据库主机名错误导致客户端TNS-12541怎么办
    这篇文章主要介绍数据库主机名错误导致客户端TNS-12541怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! plsql登录出现TNS-12541l...
    99+
    2022-10-19
  • 怎么用Java客户端将数据加载到Grakn知识图中
    本篇内容介绍了“怎么用Java客户端将数据加载到Grakn知识图中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将数据迁移到Grakn我们将...
    99+
    2023-06-02
  • 在MySQL中,为什么一个客户端不能使用另一个客户端定义的用户定义变量
    在MySQL中,每个客户端都有自己的会话空间,用于存储会话变量和用户定义变量。每个客户端之间的会话空间是相互隔离的,因此一个客户端无...
    99+
    2023-10-20
    MySQL
  • 在MySQL中,为什么一个客户端不能使用另一个客户端定义的用户定义变量?
    在 MySQL 中,一个客户端定义的用户定义变量不能被另一个客户端看到或使用,因为用户定义变量是特定于连接的。这意味着当客户端退出时,给定客户端连接的所有变量都会自动释放...
    99+
    2023-10-22
  • mysql客户端连接远程数据库服务器失败怎么办
    mysql客户端连接远程数据库服务器失败怎么办?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql客户端连接远程数据库服务...
    99+
    2022-10-18
  • 怎么在Android应用中模拟一个新闻客户端
    这期内容当中小编将会给大家带来有关怎么在Android应用中模拟一个新闻客户端,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先我们创建一个JsonParse类用来解析json文件:package cn....
    99+
    2023-05-31
    android roi
  • 怎么在Java中利用Kafka对客户端进行访问
    这篇文章给大家介绍怎么在Java中利用Kafka对客户端进行访问,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. maven依赖包<dependency> <groupId>org.apac...
    99+
    2023-05-31
    kafka java ava
  • oracle中使用exp,imp客户端上导入导出数据DMP
    EXP scott/oracle@orcl BUFFER=64000 FILE=D:dumpSONIC.DMP TABLES=(employees) -- 导入, 必须先删除表, 导入必须是DBA imp scott/123456@orcl...
    99+
    2017-03-23
    oracle中使用exp imp客户端上导入导出数据DMP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作