我正在使用IndexedDB开发一个Windows 8应用,对此两者都非常陌生。我已经成功地创建、读取、更新和删除了对象存储中的对象,并创建了一些数据库和几个对象存储。我的问题是如何列出所有的对象存储和数据库?我创建了一些不需要的虚假对象存储,我想稍微整理一下,但我记不起它们的名称。也许这有点过于苛求,但似乎应该可以列出所有的数据库和存储。谢谢!
在撰写本文时 [chrome 72],您可以在浏览器控制台中使用以下命令列出所有数据库。基本上,indexedDB.databases()
是一个Promise
。您可以使用它将所有数据库的列表作为数组获取。在数组上运行循环以获取数据库名称。
indexedDB.databases().then(r => console.log(r))
希望这有所帮助
编辑于2018年,此答案不再适用:
webkitGetDatabaseNames() 在Chrome 60中被弃用
indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args) {
console.log(sender.target.result);
};
还有另一个函数,可以列出单个数据库中所有对象存储,适用于所有浏览器:
indexedDB.open(databaseName).onsuccess = function(sender, args) {
console.log(sender.target.result.objectStoreNames);
};
webkitGetDatabaseNames()
已被弃用。 - xkeshavwebkitGetDatabaseNames
方法。您可以尝试使用IE10选项对话框清除数据库。由于所有其他主题都被引用为重复项,因此在Chrome中,您可以在开发者工具>应用程序>存储
中查看并删除所有创建的数据库。
要查看IndexedDB内部:chrome://indexeddb-internals/
indexedDB.databases()
也可以在 Chrome 中以编程方式使用。 - VelojetIDBFactory.databases
。注意浏览器支持有限。 - medmunds