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