博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5 web IndexedDB使用详解(抄的仅作记录,详细的见案例)
阅读量:4343 次
发布时间:2019-06-07

本文共 2518 字,大约阅读时间需要 8 分钟。

当前,IndexedDB的规范尚未最终定稿,不同的浏览器厂商还是使用浏览器前缀实现IndexedDB API。基于Gecko内核的浏览器使用moz前缀,基于WebKit内核的浏览器使用webkit前缀。 

如果还希望使用window.indexedDB来判断浏览器是否支持IndexedDB数据库,则可以做下面的处理:

window.indexedDB=window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;  if(window.indexedDB){ alert("您的浏览器支持IndexedDB数据库。"); } else{ alert("您的浏览器不支持IndexedDB数据库。"); }

window.indexedDB对象只有一个open方法,用于打开指定的数据库,语法如下: 

request对象 = window.indexedDB.open(数据库名, 数据库版本号)

//1、打开或创建数据库request=window.indexedDB.open('testDB','2.0');//参数为:数据库名和版本号;数据库存在,则打开它;否则创建。

request对象用于处理用户对数据库的操作请求。可以通过它定义操作成功和失败的处理函数。 

通过request.onsuccess可以指定操作成功的处理函数,方法如下: 
(注:request.result是执行指定操作的结果,例如,执行打开数据库的操作后,通过request.result可以获得打开数据库的实例。通过数据库实例可以访问数据库。)

//2、指定操作成功的处理函数(可以获得对象存储空间信息)request.onsuccess=function(event){    alert('打开成功!');    mydb=request.result;    //var len = mydb.objectStoreNames.length;                 //对象存储空间名的个数    //var  name=mydb.objectStoreNames[i];                     //对象存储空间名    /*******方法调用********************/ get(mydb); };

通过request.onerror可以指定操作失败的处理函数,方法如下:

//3、指定操作失败的处理函数request.onerror=function(event){    alert("打开失败,错误号:" + event.target.errorCode); };

通过request.onupgradeneeded可以执行改变数据库结构的操作函数(包括创建对象存储空间),方法如下:

//4、onupgradeneeded事件在下列情况下被触发:数据库第一次被打开时;打开数据库时指定的版本号高于当前被持久化的数据库版本号。(可通过修改版本号触发该事件)request.onupgradeneeded = function(event) {    mydb=request.result;//获得数据库实例对象 if(!mydb.objectStoreNames.contains("students")) { //判断对象存储空间名称是否已经存在 var objectStore = mydb.createObjectStore("students", {keyPath: "id"});//创建students对象存储空间;指定keyPath选项为id(即主键为id) //对象存储空间students的列email上创建一个唯一索引email,可以创建多个索引。 objectStore.createIndex("email", //索引名 "email", //创建索引的列(即keyPath,索引属性字段名) { unique: true }); //索引选项(索引属性值是否唯一:true or false) } }

 游标

/** * 范围: *(1)匹配等于指定键值的记录:var range = IDBKeyRange.only(指定键值) *(2)匹配小于指定键值的记录:var range = IDBKeyRange.lowerBound(指定键值, 是否不包括指定键值) *(3)匹配大于指定键值的记录:var range = IDBKeyRange.upperBound(指定键值, 是否不包括指定键值) *(4)匹配指定范围内的记录:var range = IDBKeyRange.bound(下限键值,上限键值,是否不包括下限键值,是否不包括上限键值 */  例如:// 只取得当前索引的值为110的数据  IDBKeyRange.only("110");  // 只取得当前索引的值大于110,并且不包括110的数据  IDBKeyRange.lowerBound("110", true); // 只取得当前索引的值小于110,并且包括110的数据 IDBKeyRange.upperBound("110", false); // 取得当前索引的值介于110和120之间,并且包括110,但不包括120的数据 IDBKeyRange.bound("110", "120", false, true);
/** * 顺序参数: * IDBCursor.NEXT,顺序循环; * IDBCursor.NEXT_NO_DUPLICATE,顺序循环且键值不重复; * IDBCursor.PREV,倒序循环; * IDBCursor.PREV _NO_DUPLICATE,倒序循环且键值不重复。 */

 

 

HTML5 - IndexedDB

  

转载于:https://www.cnblogs.com/lovelgx/articles/6026957.html

你可能感兴趣的文章
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_34、SpringBoot整合Mybatis实操和打印SQL语句...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第11节 Logback日志框架介绍和SpringBoot整合实战_45、SpringBoot2.x日志讲解和Logback配置实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>