Chrome.Storage.Sync的存储配额?

时间:2015-04-19 16:24:32

标签: google-chrome google-chrome-extension

我的扩展程序将使用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 ..

1 个答案:

答案 0 :(得分:9)

是。是的,您可能会超过limit。您当前的示例(包含4个ID)大约是半个千字节。所以你已经用64了。

然后,您的set操作将失败,并且您的回调chrome.runtime.lastError将会设置:

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

请注意:

  • 如果您不需要跨设备同步所有这些数据,请使用chrome.storage.local。它有更加宽松的配额5,242,880字节..
  • ..如果您要求"unlimitedStorage"权限,则会将其删除。
  • 正如谷歌文档所说的那样,以一种有点诙谐的方式:

      

    chrome.storage不是一辆大货车。这是一系列的管子。如果你不明白,那些管子可以被填满,如果你把它们放进去就填满了它,它就会排成一行,任何把这些管子装进大量材料的人都会推迟它。 / p>

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

  • 将所有这些数据都存储在存储中是非常无效的。分析它,并存储分析结果 - 您可以在存储中获得更清晰的数据。

P.S。 HTML is not a regular language.