检查IndexedDB数据库是否存在
发布时间:2020-05-23 11:54:49 所属栏目:MsSql 来源:互联网
导读:有没有办法检查IndexedDB数据库是否已经存在?当程序尝试打开不存在的数据库时,将创建数据库. 我可以想到的唯一方法是像下面这样,我测试一个objectStore是否已经存在,如果没有,数据库被删除: var dbexists=false;var request = window.indexedDB.open(TestDa
|
有没有办法检查IndexedDB数据库是否已经存在?当程序尝试打开不存在的数据库时,将创建数据库.
var dbexists=false;
var request = window.indexedDB.open("TestDatabase");
request.onupgradeneeded = function(e) {
db = e.target.result;
if (!db.objectStoreNames.contains('todo')) {
db.close();
indexedDB.deleteDatabase("TestDatabase");
} else {
dbexists=true;
}
}
解决方法在onupgradedeeded回调你可以检查版本. (e.target.result.oldversion).如果它是0,db不存在. 编辑: 我已经建立了自己的indexeddbviewer.因为我打开没有版本的indexeddb,如果我进入onupgradeneeded事件,那意味着db不存在.在这种情况下,我称之为中止,所以它不升级到版本1.这是我检查它的方式. var dbExists = true;
var request = window.indexeddb.open("db");
request.onupgradeneeded = function (e){
e.target.transaction.abort();
dbExists = false;
}
但如前所述.在这种情况下,db可能会继续存在,但是会调用onupgradeneeded (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
