如何清理未使用的indexeddb数据库

e0bqpujr  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(2)|浏览(1989)

我使用IndexedDB作为本地存储,它运行得很好。由于太详细的原因,我经常只创建一个数据库并使用它,但在某些情况下,我需要创建更多的数据库。在某些情况下,这些额外的数据库可能最终成为“孤立的”或未使用的。并且在将来也是不必要的。未使用的IndexedDB数据库是否会以某种方式从某种本地存储缓存中“老化”出来我不介意自己做清理工作,但是由于似乎没有明确的方法来获得现有数据库的列表,我不知道该怎么做。而且用户仅仅删除所有数据库的能力似乎有点迟钝。
我想我可以保留一个包含所有现有数据库的主数据库......但即使这样,我也不认为我能真正删除它们。我想我能做的最好的事情就是清空它们。
感谢你的见解。

koaltpgm

koaltpgm1#

如果不显式删除数据库,它通常会保留在那里。但在两种情况下,它会被删除:
1.用户删除它。例如,在Chrome中,如果用户清除“cookie和站点数据”,则所有IndexedDB数据库都将被删除。
1.浏览器删除它。从技术上讲,浏览器可以随时删除任何IndexedDB数据库。实际上,这种情况很少发生,甚至可能永远不会发生。理论上,当磁盘空间不足时,应该会发生这种情况,但我从未见过这种情况实际发生,即使我做了一个人工测试,用尽了VM中的所有磁盘空间。
这意味着,您通常可以非常确定,除非您删除IndexedDB数据库,否则它不会被删除,但您不能依赖于此。

rjee0c15

rjee0c152#

如果不喜欢浏览器在存储压力下删除未使用的数据库,您可以要求它保持存储

navigator.storage.persist()

返回Promise
请参阅:storage.persist definition and example

相关问题