电子索引数据库限制?
Posted
技术标签:
【中文标题】电子索引数据库限制?【英文标题】:Electron IndexedDb limit? 【发布时间】:2019-03-26 01:38:43 【问题描述】:在this Electron issue,@zcbenz 评论道:
我们与 Chrome 浏览器有相同的大小限制,即“可用磁盘空间的 1/3”。
回复来自 2016 年初。
我已经运行了这段代码:
const estimation = await navigator.storage.estimate();
console.log(`Quota: $estimation.quota`);
console.log(`Usage: $estimation.usage`);
它告诉我,我有 100% 的可用磁盘空间作为配额,所以我很困惑,找不到比 2016 年评论更新的任何内容,这也是 Electron 特有的。
所以我的问题:
这已经正式改变了吗? 如果您尝试超过该限制(假设它不是真正的 100% 可用空间)会发生什么? Electron/Chromium 会驱逐您的数据吗?--- Electron v3.0.4
【问题讨论】:
当你解决这个问题时告诉我 刚打开这个。 github.com/electron/electron/issues/16029。手指越过它得出一个明确的答案。 meta.***.com/questions/288160/no-thanks-damn-it 谢谢只是在你本来很好的问题中增加了噪音 希望得到答案 【参考方案1】:我可以向您保证,在 2019 年,您现在可以完全控制您的 indexdb 数据。 根据谷歌的这篇文章: 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
【讨论】:
感谢您的参与。不幸的是,这并不能解决问题。您引用的文章写于 2017 年。本文最后一次更新是在 2019 年,与 2017 年文章中的内容相矛盾:developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/…。除其他外,这就是导致我(以及显然是其他人)困惑的原因。 [1/2] [2/2] 您引用的文章中的这一行也涉及:“如果 Web 应用程序尝试存储(例如,使用 IndexedDB 或缓存存储 API)足够大的数据以使给定来源超出其可用配额,请求将失败并出现 QuotaExceededError 异常。”最后,调用persist 可以防止我的数据被驱逐,但它对我可以存储多少的配额问题没有帮助。由于显然在一年多的时间里没有明确的答案,我计划尝试对此进行测试,并将报告我的发现。以上是关于电子索引数据库限制?的主要内容,如果未能解决你的问题,请参考以下文章