我在 Windows 8 应用程序中使用 IndexedDB,我对两者都很陌生。我已经能够成功地从对象存储中创建、读取、更新、删除对象,并创建了几个数据库和一些对象存储。我的问题是如何列出我所有的对象存储和数据库?我创建了一些不需要的假的,我想稍微清理一下,但我不记得它们的名字了。也许这是肛门保留,但似乎应该可以列出所有数据库和商店。谢谢!
4 回答
在撰写这篇文章 [chrome 72] 时,您可以在浏览器的控制台中使用以下命令列出所有数据库。本质上 indexedDB.databases()
是一个Promise
. 您可以使用它来获取所有数据库的列表作为数组。在数组上运行循环以获取数据库的名称。
indexedDB.databases().then(r => console.log(r))
希望这可以帮助
编辑 2018 这个答案不再适用:
webkitGetDatabaseNames() is deprecated in chrome 60
在 Chrome webkit 中有一个函数可以返回所有数据库名称,从 Chrome 60 ( webkitgetdatabasenames )开始,该函数不再可用:
indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{ console.log(sender.target.result); };
还有另一个函数列出了在所有浏览器中工作的单个数据库中的所有对象存储:
indexedDB.open(databaseName).onsuccess = function(sender, args)
{ console.log(sender.target.result.objectStoreNames); };
目前无法枚举标准中的现有数据库。Windows 8 应用程序使用 IE,它不提供非标准webkitGetDatabaseNames
方法。您可以使用IE10 中的选项对话框清除数据库。
标准中使用IDBDatabase实例的objectStoreNames方法定义了列出数据库内的商店。
由于所有其他主题在此处引用为重复项。在 Chrome 中,您可以查看和删除所有已创建的数据库Developer Tools > Application > Storage
。
查看 IndexedDB 内部:chrome://indexeddb-internals/