Chrome.Storage.Sync的存储配额?

Wic*_*312 3 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>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

该页面在这里说的每个"同步存储单个项目,如通过它的值加上其密钥长度的JSON字符串化测定"时,大小限制为8192个字节.从任何人的知识,我可能超过限制?假设我有40个ID ..

Xan*_*Xan 12

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

然后你的set操作将失败,并在你的回调chrome.runtime.lastError将被设置:

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

请注意:

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

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

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

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

PS HTML不是常规语言.