您的位置:首页 > 数据库

浏览器数据库IndexedDb CURD类和cookie CURD封装类

2018-02-24 15:20 686 查看

该项目封装了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);
}
4000
,
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息