indexDB

阅读数:1401 发布时间:2016-06-25 17:19:00

作者:gsh 标签: 本地缓存 数据库 JavaScript

indexDB介绍

indexDV是html5中本地缓存的一种,他和别的缓存的区别是他是一个数据库,在indexedDB大部分操作并不是我们常用的调用方法,返回结果的模式,而是请求——响应的模式,比如打开数据库的操作var request=window.indexedDB.open('testDB');这条指令并不会返回一个DB对象的句柄,我们得到的是一个IDBOpenDBRequest对象,而我们希望得到的DB对象在其result属性中,indexDB属于异步API,所谓异步API是指并不是这条指令执行完毕,我们就可以使用request.result来获取indexedDB对象了,就像使用ajax一样,语句执行完并不代表已经获取到了对象,所以我们一般在其回调函数中处理。。

indexDB属性

除了result,IDBOpenDBRequest接口定义了几个重要属性

创建数据库

调用indexedDB.open方法就可以创建或者打开一个indexedDB
下面是列子

function openDB (name) {
    var request=window.indexedDB.open(name);
    request.onerror=function(e){
        console.log('OPen Error!');
    };
    request.onsuccess=function(e){
        myDB.db=e.target.result;
    };
}

var myDB={
    name:'test',
    version:1,
    db:null
};
openDB(myDB.name);

代码中定义了一个myDB对象,在创建indexedDB request的成功毁掉函数中,把request获取的DB对象赋值给了myDB的db属性,这样就可以使用myDB.db来访问创建的indexedDB了。

关闭或者删除数据库

关闭数据库可以直接调用数据库对象的close方法

下面是列子

function closeDB(db){
    db.close();
}

删除数据库使用indexedDB对象的deleteDatabase方法

function deleteDB(name){
    indexedDB.deleteDatabase(name);
}

indexDB简单的一些列子

var myDB={
    name:'test',
    version:3,
    db:null
};
openDB(myDB.name,myDB.version);
setTimeout(function(){
    closeDB(myDB.db);
    deleteDB(myDB.name);
},500);

相关文章推荐: