【问题标题】:Storage Quota for Chrome.Storage.Sync?Chrome.Storage.Sync 的存储配额?
【发布时间】:2015-06-26 06:30:29
【问题描述】:

我的扩展程序将使用Chrome.Storage.Sync.Set 将这样的数据保存在字符串中,然后我将使用正则表达式/类似的东西对其进行解释:

<ID>TEXTBOX</ID><STYLE>BORDER:1PX SOLID BLACK; BACKGROUND-COLOR:YELLOW;
FONT-SIZE:18PX; FONT-FAMILY:ARIAL</STYLE><OTHER></OTHER>

我希望将所有保存的数据放在一个存储项中。即:

<ID>TEXTBOX</ID><STYLE>BORDER:1PX SOLID BLACK; BACKGROUND-COLOR:YELLOW;
FONT-SIZE:18PX; FONT-FAMILY:ARIAL</STYLE><OTHER></OTHER>
<ID>TEXTBOX</ID><STYLE>BORDER:1PX SOLID BLACK; BACKGROUND-COLOR:YELLOW;
FONT-SIZE:18PX; FONT-FAMILY:ARIAL</STYLE><OTHER></OTHER>
<ID>TEXTBOX</ID><STYLE>BORDER:1PX SOLID BLACK; BACKGROUND-COLOR:YELLOW;
FONT-SIZE:18PX; FONT-FAMILY:ARIAL</STYLE><OTHER></OTHER>
<ID>TEXTBOX</ID><STYLE>BORDER:1PX SOLID BLACK; BACKGROUND-COLOR:YELLOW;
FONT-SIZE:18PX; FONT-FAMILY:ARIAL</STYLE><OTHER></OTHER>

此页面here 表示,对于每个“同步存储中的单个项目,通过其值的 JSON 字符串化加上其密钥长度来衡量。”,大小限制为 8,192 字节。 据任何人所知,我是否可能超过限制?假设我有 40 个 ID。

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

    是的。是的,您可能会查看limit。您当前的示例有 4 个 ID,大约是 0.5 KB。所以你已经用完了 64 个。

    那么您的set 操作将失败,并在您的回调中设置chrome.runtime.lastError

    chrome.storage.sync.set(data, function() {
      if(chrome.runtime.lastError) {
        // Uh-oh..
      }
    });
    

    请注意:

    • 如果您真的不需要跨设备同步所有这些数据,请使用chrome.storage.local。它有 5,242,880 字节的更慷慨的配额..
    • ..如果您请求"unlimitedStorage" 许可,则将其删除。
    • 正如 Google 文档所说的那样,有点半开玩笑的方式:

      chrome.storage 不是一辆大卡车。这是一系列的管子。如果你不明白,那些管子是可以装满的,如果当你输入你的信息时它们已经装满了,它就会排成一行,而且任何人在那个管子里放大量材料都会延迟。

      同步存储需要 Google 基础架构的支持 - 他们不愿意无限制地免费提供。

    • 将所有这些数据放入存储中是非常无效的。对其进行分析并存储分析结果 - 您可以在存储中获得更清晰的数据。

    附: HTML is not a regular language.

    【讨论】:

    • 您好,感谢您的回答,我会将其标记为完成,再问一个问题 - 您建议使用 Chrome.Storage.Local 还是 HTML5 本地存储?
    • 很好的答案,谢谢!我有足够的数据需要使用chrome.storage.local,而不是chrome.storage.sync
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2020-04-18
    • 2017-07-20
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    相关资源
    最近更新 更多