【问题标题】:Chome Extension - QuotaExceededError localStorageChrome 扩展程序 - QuotaExceededError localStorage
【发布时间】:2017-08-25 20:12:54
【问题描述】:

我正在开发一个 Chrome 扩展程序并使用旧的 localStorage 来存储设置和缓存,而不是新的 chrome.storage.localchrome.storage.sync。我有unlimitedStorage 权限,然后我的缓存变得很大。我收到了QuotaExceededError

如何克服这个问题?

【问题讨论】:

    标签: javascript google-chrome-extension local-storage


    【解决方案1】:

    localStorage 不是,也不会是无限的

    文档中说明了unlimitedStorage 权限不适用于localStorage 的事实。引用的错误issue 58985 在 2010 年 12 月被标记为“WontFix”。因此,没有也不会有解决方案让您在localStorage 中存储无限数据。您需要选择其他存储数据的方法。

    无限存储选项

    storage.local

    您的选项包括chrome.storage,它明确用于扩展存储数据。您可以使用storage.local(使用unlimitedStorage 权限可以不受限制)存储机器本地的数据,或者使用storage.sync(配额是not 由unlimitedStorage 设置为无限制)。

    Web SQL Database

    还有其他存储数据的选项。例如,Web SQL Database,由unlimitedStorage 权限专门授予无限存储空间。

    HTML5 本地 File API (MDN)

    通过unlimitedStorage 权限,您可以使用文件 API 存储的数据量不受限制。您还可以通过调用webkitStorageInfo.requestQuota() 单独请求特定的配额大小,而无需使用unlimitedStorage 权限。当您这样做时,将要求用户批准存储请求。如果您确实使用了unlimitedStorage 权限,则无需单独申请配额。

    使用什么

    最好使用什么取决于您使用存储的确切用途。您没有提供有关您的实际使用情况的信息,因此我们无法判断哪种方式适合您的情况。

    应用缓存

    关于应用程序缓存在unlimitedStorage 权限下增长到较大的问题:是的,文档明确指出声明unlimitedStorage 权限将导致应用程序缓存变得无限制。如果这是一个问题,您将不需要声明unlimitedStorage 权限。

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 2011-04-05
      相关资源
      最近更新 更多