检查IndexedDB数据库是否存在
发布时间:2020-12-12 08:39:57 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法检查IndexedDB数据库是否已经存在?当程序尝试打开不存在的数据库时,将创建数据库. 我可以想到的唯一方法是像下面这样,我测试一个objectStore是否已经存在,如果没有,数据库被删除: var dbexists=false;var request = window.indexedDB.open("TestD
有没有办法检查IndexedDB数据库是否已经存在?当程序尝试打开不存在的数据库时,将创建数据库.
我可以想到的唯一方法是像下面这样,我测试一个objectStore是否已经存在,如果没有,数据库被删除: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |