存储chrome.storage配置文件的最佳方式

时间:2013-12-09 20:45:22

标签: google-chrome-extension

行。也许不是最好,但相信这可能是搜索引擎更好的标题。

使用chrome.storage保存配置文件,通常如下所示:

chrome.storage.sync.save(
    { 
        profiles: [
            {
                id : profile1,
                foo : 42,
                bar : 2.71828
            }, {
                id : profile2,
                foo : 3.14,
                bar : 1.618033
            }, …
        ],
        current_profile : 'profile2'
    }
);

这有一些问题。

我必须在选项页面的每次保存中更新整个 个人资料 。我不能说保存profile[32] 但必须说保存profiles 。虽然需要有一个相当庞大的配置文件设置,而且很多它都是一个问题,但我不喜欢强制坏的风格。

我可以在root中保存每个配置文件,但这就像在Ecma中使用x^n public var一样。

在内容脚本中使用这些值时会出现一些问题。

  1. 从后台脚本请求存储。
  2. 后台脚本接收请求并执行异步查找。
  3. 将响应报告结果返回到内容脚本。
  4. 如果我选择一个模型,我将每个配置文件存储在根目录而不是数组,我将不得不在几个单独的轮次中执行上述 异步 。首先得到 current_profile ,有一个回调函数,然后请求该密钥,第三个回调函数向结果报告发起者。这很复杂,导致额外的代码。

    截至目前,我保存 current_profile_id 持有id并且 current_profile 持有配置文件数组中条目的副本,以便我可以请求当前在内容脚本中,但这也是丑陋的,因为它仅在请求时强制根级别的欺骗。

    在每个级别上存储都会被检索,同步或更新复杂性,更重要的是,冗余是一个有点高的因素。

    我在设计过程中遗漏了一些东西。有没有更好的方法来解决这个问题?

0 个答案:

没有答案