IndexedDB

xiaoxiao2021-02-27  214

IndexedDB是Indexed DataBase的简写,译为索引数据库。I

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange //以兼容方式获取indexedDB window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; //打开数据库 var request = window.indexedDB.open(dbname,dbVersion);//dbname:数据库名称、dbVersion数据库版本 //打开数据库成功触发的事件 request.onsuccess = function(event){ //获取IndexedDB的IDBDatabase对象 var db = request.result; } //打开数据库失败触发的事件 result.onerror = function(event) { //失败执行的语句 } //版本编号更改时触发的事件,数据结构发生改变就会更新版本编号,第一次创建数据库也会触发此事件。 request.onupgradeneeded = function(evnet) { var db = event.target.result; //创建objectStore var objectStore = db.createObjectStore(tbname,param); objectStore.creatIndex(indexName, indexTarget, {unique: ture|false}); } //初始化交易 var transaction = db.transaction(objectStoreName, 操作权限); //获取objectStore store = transaction.objectStore(tbname); //新增数据 request = store.add(data); request.onsuccess = function(e){ //.... } request.onerror = function(e) { //.... } //交易相关事件 transaction.oncomplete = function(e){...} transaction.onerror = function(e){...} transaction.abort = function(e){...} //读取数据 var request = store.get(key); request.onsuccess = function(event) { //.... } request.onerror = function(event) { //.... } //删除数据 var request = store.delete(key); request.onsuccess = function(event) { //.... } request.onerror = function(event) { //.... } //清空数据 store.clear(); //删除数据库 var request = window.indexedDB.deleteDatabase(dbName); request.onsuccess = function(event) { //.... } request.onerror = function(event) { //.... } //创建指针对象 var index = store.index(keyword); var range = IDBKeyRange.bound(); var order = IDBCursor.NEXT|PREV|NEXTUNIQUE|PREVUNIQUE; var request = index.openCursor(range, order);

补充:

IDBKeyRange对象有有几个方法:

lowerBound

IDBKeyRange.lowerBound(x); // >=x IDBKeyRange.lowerBound(x,ture); //>x

upperBound

IDBKeyRange.upperBound(x); //<=x IDBkeyRange.upperBound(x, true); //<x

bound

IDBKeyRange.bound(x,y); //>=x <=y IDBKeyRange.bound(x,y,ture,true); //>x <y IDBKeyRange.bound(x,y,ture,false);//>x <=y IDBKeyRange.bound(x,y,false,ture);//>=x <y

only

IDBKeyRange.only(x);
转载请注明原文地址: https://www.6miu.com/read-12606.html

最新回复(0)