html-IndexedDB-1.1

概念

    1、键值对的形式,值可以是复杂类型

    2、简历在事务数据库模型上

    3、清除浏览器缓存的时候,可能会被清除相关的数据哦

 

---------------------------------------------------------
---------------------------------------------------------

1、数据库

2、版本
3、事务

4、对象库

5、索引

6、游标

---------------------------------------------------------
---------------------------------------------------------

1、数据库

    打开

//dbName : 数据库的名称
//version: 版本号
var request = indexedDB.open(dbName);
var request = indexedDB.open(dbName, version);

       indexedDB应该是个全局变量,系统自定义的不需要我们初始化!

       由于request是个异步操作,所以我们需要顺便绑个回调函数

var request = indexedDB.open(dbName);
request.onerror = function(event) {// 错误处理程序 };
request.onupgradeneeded = function(event) {
    var db = event.target.result;
    //。。。
}


2、版本

var version = db.version; //返回当前版本号

var request = db.setVersion('1.0'); //给使用中的数据库分配一个新版本值

        由于request是个异步操作,所以我们需要顺便绑个回调函数

var request = db.setVersion('1.0');
request.addEventListener("error", function(event) { }, false);
request.addEventListener("success", function(event) { }, false);

 

3、事务

//AA:需要关联的存储空间
//way可以是以下的值
//IDBTransaction.READ_ONLY  只读  readOnly
//IDBTransaction.READ_WRITE 读写  readwrite
//IDBTransaction.VERSION_CHANGE 改变版本 versionchange
var transaction = db.transaction(['AA']);
var transaction = db.transaction(['AA'], way);

 

4、对象库

    对象的唯一要求是至少包含一个生命为索引的属性

    创建对象库

//name         :对象库名称
//keyPath      :声明每个对象的公共索引【类似主键】
//autoIncrement:bool类型的,用来指定是否拥有键生成器
var objectStore = db.createObjectStore(name, { keyPath: "ssn" }, autoIncrement);
var objectStore = db.createObjectStore(name, { keyPath: "ssn" });

//name:对象库名称
var objectStore = transaction.objectStore(name); //访问对象库

//name:对象库名称
transaction.deleteObjectStore(name); //删除对象库


var list[] = transaction.objectStoreNames; //获得已打开数据库中对象库的名称列表

var dbName = objectStore.name; //获得对象库的名称

//myIndex在索引那里找
var keyPath = objectStore.keyPath; //获得对象库使用的keyPath

   对象

//obj :键值对组合 / 包含多个键值对的对象
var request = objectStore.add(obj);//如果存在索引相同的对象,则返回错误

//obj :键值对组合 / 包含多个键值对的对象
var request = objectStore.put(obj);//如果存在索引相同的对象,则覆盖

//key:索引
var request = objectStore.get(key); //获得对象

//key:索引
var request = objectStore.delete(key); //删除对象

        由于request是个异步操作,所以我们需要顺便绑个回调函数

var request = objectStore.get(key);
request.addEventListener("success", function(event) { 
    var result = event.result || event.target.result;
    alert(reult.id);
}, false);


5、索引

//name     :索引名称
//property :用来做索引的属性
//unique   :bool类型,判断是否唯一
objectStore.createIndex(name, property, {unique: true});//创建

//name     :索引名称
var myIndex = objectStore.index(name);//使用索引

//name     :索引名称
objectStore.deleteIndex(name, property, {unique: true});//删除

var myindexNames = objectStore.indexNames; //获得对象库的索引名称列表


6、游标

//scope 选择的对象范围
//    IDBKeyRange.only(value); 查找关键字与value对应的对象
//    IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen);从lower 到 upper ,是否包含最低值、最高值
//    IDBKeyRange.lowerBound(value, open);最低值为lower,是否包含最低值
//    IDBKeyRange.upperBound(value, open);最高值为upper,是否包含最高值
//type  返回的顺序
//    NEXT               升序
//    NEXT_NO_DUPLICATE  升序并去重
//    PREV               降序
//    PREV_NO_DUPLICATE  降序并去重
var newCursor = objectStore.openCursor(scope, type); //生成游标
newCursor.addEventListener("success", function (e){
    var cursor = e.result || e.target.result;
}, false);
cursor.continue(); //游标向前移动一个位置

cursor.delete(); //删除当前位置上的对象

cursor.update(value); //更新对象的内容

    获得游标的信息

var key = cursor.key; //获得对象关键字的值
var content = cursor.value.属性名; //获得对象属性的值
var content = cursor.direction; //当前方向。升序或降序读取对象
var content = cursor.count; //获得对象大约数量

 

参考:

    MDN IndexedDE

    《HTML5精粹》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值