Electron IndexedDb 的限制是什么?

19

这个 Electron 问题中,@zcbenz 发表了评论:

我们与 Chrome 浏览器有相同的大小限制,即“可用磁盘空间的1/3”。

这个回应是来自2016年初。

我运行了这段代码:

const estimation = await navigator.storage.estimate();
console.log(`Quota: ${estimation.quota}`);
console.log(`Usage: ${estimation.usage}`); 

我的电脑显示我可用磁盘空间的配额为100%,这让我感到困惑,并且找不到比2016年评论更新的内容。我想知道:

  • 官方是否已经更改了配额设定?
  • 如果尝试超出限制(假设实际可用空间并非100%),会发生什么?
  • Electron/Chromium是否会清理我的数据?

--- Electron v3.0.4


请在您弄清楚之后告诉我。 - Justin Taddei
2
刚刚打开了这个链接:https://github.com/electron/electron/issues/16029。希望能得到一个明确的答案。 - TimTheEnchanter
https://meta.stackoverflow.com/questions/288160/no-thanks-damn-it 感谢只是在你本来就很好的问题上增加了噪音。 - Jean-François Fabre
希望能得到这个问题的答案。 - Trevor
1个回答

1
这是2019年,我可以向您保证,您现在可以完全控制自己的indexdb数据。根据Google的一篇文章:https://developers.google.com/web/updates/2017/08/estimating-available-storage-space,上述代码应该返回正确的配额大小。但除此之外,现在调用此代码会使您的数据免于"驱逐"。
if (navigator.storage && navigator.storage.persist)
  navigator.storage.persist().then(function(persistent) {
    if (persistent)
      console.log("Storage will not be cleared except by explicit user action");
    else
      console.log("Storage may be cleared by the UA under storage pressure.");
  });

https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist


2
谢谢您的参与。不幸的是,这并没有解决问题。您提到的文章写于2017年。而这篇文章则在2019年进行了最新更新,并且与2017年的文章存在矛盾:https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#Storage_limits。正是这种情况,以及其他一些问题,导致了我的困惑(同时也有其他人)。 - TimTheEnchanter
3
引用文章中的这句话也让人担忧:“如果一个网站应用程序试图使用 IndexedDB 或 Cache Storage API 存储数据,且该数据足以使特定源超出其可用配额,则请求将因 QuotaExceededError 异常而失败。” 最后,调用 persist 方法可以防止我的数据被驱逐出缓存,但它并没有解决我能够开始存储多少数据的配额问题。 由于似乎一年来没有确定的答案,我打算尝试进行测试,并会反馈我所发现的结果。 - TimTheEnchanter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接