一款轻量级的indexeddb 网页数据库封装类webdatabase.js

该项目封装了web网页离线存储数据库indexedDb和cookie操作类,方便网页编程时更有效方便的本地存储一些数据,一个重要特性是本地数据持久性,它使用户能够在线和离线访问 Web 应用程序。此外,本地数据持久性使移动应用程序更灵敏,使用的带宽更少,而且能够在低带宽场景中更高效地工作。indexedDb提供了一些本地数据持久性选项。IndexedDB(一个更加强大的选项)支持您本地存储大量对象,并使用健壮的数据访问机制检索数据。您可以使用它创建具有丰富本地存储数据的数据密集型应用程序,包括创建数据库。此外还支持网页数据库,存储表(localstorage)以及字段的增删改查。还预留了IndexedDB API 的许多更高级的功能,包括事务处理、索引和游标接口

数据库连接

IndexedDb操作类

IndexedDb(dbName,connCallback,databaseVersion) 
/**
*param:dbName 数据库名称
*param:connCallback:{
*   connSuccess:function(self){
*        //连接成功回调self当前类实例
*   },
*   connUpgrade:function(self){
*       //连接成功回调self当前类实例
*   },
*   connError:function(e){
*       //连接失败返回错误信息
*   }
*}
*param:databaseVersion 数据库版本
**/

//创建表结构函数
createTable(tableName,keyPath,callback)
/**
*param:tableName 表名称
*param:keyPath 数据表索引列名称
*param:callback:{
*   success:function(){} //执行成功回调
*}
**/

######例如######
var dbs=new IndexedDb('databaseName',{
    connUpgrade: function (self) {      //首次连接或数据库版本更新时触发
        self.createTable("TableName1",'KeyPath1',{ //当需要创建表时需要更新版本来触发connUpgrade方法,connUpgrade回调外调用createTable来创建表的方法是错误的
            success:function (objectStore) {
                // 创建一个索引来通过 name 搜索客户。
                // 可能会有重复的,因此我们不能使用 unique 索引。
                objectStore.createIndex('name','name',{unique:false});
                // 创建一个索引来通过 email 搜索客户。
                // 我们希望确保不会有两个客户使用相同的 email 地址,因此我们使用一个 unique 索引。
                objectStore.createIndex('email','email',{unique:true});
            }
        })
        //创建另一张表TableName2
        self.createTable(TableName2,'keyPath2')

    },
    connSuccess:function (self) {     //连接成功回掉数据库操作类实例
        
    },
    connError:function(e){ //如果连接失败
        console.log(e);
    }
})

添加表数据

函数原型 add(tableName,data,callback)

/**
*param:tableName 要操作的表名称
*param:data 要添加的数据,结构需与创建表结构createTable时定义的相同
*param:callback:{ 添加完成回调
*   success:function () {}
*   complete:function(e){},
*   error:function(e){}
*}
**/

dbs.add("TableName1",{
    'KeyPath1':'1111',
    'name':'ggc',
    'email','abc@qq.com'
},{
    success:function () {},
    complete:function(e){},
    error:function(e){}
})

获取表数据

函数原型:get(tableName,keyPathVal,callback)

/**
*param:tableName 要操作的表名称
*param:keyPathVal 索引列的值
*callback:{
*   success:function (result) {
*       console.log(result);
*   },
*   complete:function(e){},
*   error:function(e){}
*}
**/
//注意该方法已readonly方式打开,需要更新数据请使用set方法
dbs.get("TableName1","keyPath1_Value",{
    success:function (result) {
        console.log(result);
    },
    complete:function(e){},
    error:function(e){}
})  

删除一条数据

函数原型:delete(tableName,keyPathVal,callback)

/**
*param:tableName 要操作的表名称
*param:keyPathVal 索引列的值
*callback:{
*   success:function () {},
*   complete:function(e){},
*   error:function(e){}
*}
**/
dbs.delete("TableName1","keyPathVal",{
    success:function () {},
    complete:function(e){},
    error:function(e){}
})

更新数据

函数原型:set(tableName,keyPathVal,key,value,callback)

/**
*param:tableName 要操作的表名称
*param:keyPathVal 索引列的值
*param:key 需要更新的key
*param:value 需要更新的key的值
*callback:{
*   success:function () {},
*   complete:function(e){},
*   error:function(e){}
*}
**/

//相当于mysql 语句 update TableName1 set updateKey=updateValue where keyPath=keyPathVal
dbs.set("TableName1",keyPathVal,'updateKey',updateValue,{
    success:function () {},
    complete:function(e){},
    error:function(e){}
})

 

 

github 地址: webdatabase.js

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_________MAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值