html5制作本地数据库,web端数据库

  html5制作本地数据库,web端数据库

  IndexedDB介绍

  IndexedDB是一个可以在浏览器中持久存储结构化数据的对象数据库,并为web应用程序提供丰富的查询功能。

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

  与Web存储相比,IndexedDB存储空间是无限的、永久的。

  创建数据库

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

  函数openDB(){ var request=indexed db . open(dbName,db ver);//如果数据库存在,请打开它。如果数据库不存在,则创建一个新的request . on success=function(e){ } request . on error=function(e){ }//创建一个新的数据库,或者在数据库版本号发生变化时启动onupgradeneeded事件。并执行回调函数request . onusgradereneed=function(e){ } } indexed db . open方法创建一个数据库,其中传递两个参数(数据库名称,数据库版本)。当创建新数据库或更改数据库版本号时,将调用request.onusgradeneeded方法。

  创建对象存储空间

  request . onupgradereneed=function(e){ db=e . target . result;//确定该对象仓库是否存在,如果(!db . objectstorenames . contains( users ){//如果对象存储库不存在,则创建一个新的(keyPath,primary keyAutoIncrement,是否递增),将返回一个对象(objectstore)var store=db . createobjectstore( users ,{keypath: id ,auto increment:true });//指定可以索引的字段,唯一字段是否唯一,可以创建多个索引store.createindex (username ,{ unique:false })} } store . create index创建一个索引字段,有三个参数(索引名,索引字段,唯一与否)。

  事务(transaction)

  IndexedDB的查询和更新都包含在一个事务中,以确保这些操作要么一起成功,要么一起失败。

  function handle(data){//创建事务对象varts=db.transaction (users , read write );//通过事务对象获取对象仓库var store=ts . objectstore( Users );//将数据var req=store.put(数据)添加到仓库中;req . on success=function(){ } }对仓库store的操作:

  Put()添加数据,参数是要保存的对象,如果已经存在相同的数据主键(keypath),则数据会被更改。Add()添加数据,参数是要保存的对象。如果相同的数据主键(keypath)已经存在,保存将失败。Delete()删除数据,传入参数是目标数据的主键。Get()获取数据,传入参数是目标数据的主键。遍历数据

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

  var range=idbkeyrange . lower bound(1);//指定光标检索范围var req=store . open cursor(range);//创建游标dbData=[];req . on success=function(){ var cursor=this . result;if(cursor){ dbdata . push(cursor . value);游标. continue();//循环读取数据直到结束}else{ }}IDBKeyRange几种主要方法:

  IDBKeyRange.bound(n1,n2,false,false);主键范围从n1到n2,第三个和第四个参数是包括n1还是N2 idbkeyrange . only(n);范围是主键IDBKeyRange.lowerBound(n,false);主键集IDBKeyRange.upperBound(n,false)大于n;小于n查询数据的主键集

  可以查询的数据需要通过store.createIndex()进行索引

  var store=ts . objectstore( Users );var index=store . index( username );//打开数据库索引varrange=idbkeyrange . only(keyname);//传递单键(索引的值)得到rangevarreq=index . open cursor(range);删除数据库

  IndexedDB.deleteDatabase(“数据库名称”);总结

  通过事务完成了创建数据库、创建对象存储空间、遍历、添加和查询数据的操作。地址Demo地址,希望对大家的学习有帮助,也希望大家多多支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: