调查chromium浏览器中的indexeddb存储并从javascript中清除它

yyyllmsg  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(1)|浏览(206)

我正在开发PWA应用程序,其中存储使用(用于离线数据)是成功的关键因素。在调试工具中检查存储信息后,我发现indexedDb消耗了超过1 gb!!!)!

我进行了进一步调查,发现此存储似乎在所有localhost环境之间共享:https://localhost:4173/https://localhost:3000/。两个站点报告的消耗量相同。
我继续点击“清除网站数据”按钮,但只有1 mb的数据被清除(两个网站都没有数据库或缓存或类似的东西)。我甚至重新启动了浏览器
我还运行了文件系统分析器,并能够确定这实际上是这两个地址占用的空间。522.9mb每个

在PWA中,用户可以通过navigator.storage API查看空间消耗估计值:

if ("storage" in navigator && "estimate" in navigator.storage) {
        return navigator.storage.estimate();
      }

因此,当空间增长超过100毫克,让我们说,用户想要清理一些空间-它应该可以从应用程序的UI清除它..对不我甚至不能使用浏览器工具手动清除它.我认为这是一个巨大的问题,无论是客户体验和技术实现,如果这个空间不能释放..
所以我的问题是-什么样的数据在那里,更重要的是我如何从javascript中清除它?因为我已经手动完成了4173和3000端口的清理,什么都没有改变。
欢迎提出任何建议或解决方案。我使用的是“Ms Edge v100” chrome 基浏览器。

enyaitl3

enyaitl31#

你试过了吗?

let req = indexedDB.deleteDatabase(databaseName);
req.onsuccess = function () {
    console.log("Deleted database successfully");
};
req.onerror = function () {
    console.log("Couldn't delete database");
};
req.onblocked = function () {
    console.log("Couldn't delete database due to the operation being blocked");

您也可以手动删除它,如下所示:

相关问题