我在Windows 8应用程序中使用IndexedDB,而且我对两者都很新。我已经能够成功地创建,读取,更新,删除对象存储中的对象,并创建了几个数据库和一些对象存储。我的问题是如何列出我的所有对象存储和数据库?我创建了一些不需要的伪造的东西,我想稍微清理一下,但我不记得它们的名字。也许这是肛门保留,但似乎应该可以列出所有数据库和商店。谢谢!
答案 0 :(得分:18)
EDIT 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); };
答案 1 :(得分:13)
目前无法枚举standard中的现有数据库。 Windows 8应用程序使用IE,它不提供非标准webkitGetDatabaseNames
方法。您可以使用options dialog in IE10清除数据库。
使用objectStoreNames实例的IDBDatabase方法在标准中定义数据库中的商店。
答案 2 :(得分:7)
撰写本文[chrome 72]时,可以在浏览器的控制台中使用以下命令列出所有数据库。本质上indexedDB.databases()
是Promise
。您可以使用它来获取所有数据库的列表作为数组。在数组上运行循环以获取数据库名称。
indexedDB.databases().then(r => console.log(r))
希望这会有所帮助
答案 3 :(得分:1)
由于所有其他主题均在此处重复引用。在Chrome中,您可以查看和删除Developer Tools > Application > Storage
中所有创建的数据库。
要查看IndexedDB内部:chrome://indexeddb-internals/