行。也许不是最好,但相信这可能是搜索引擎更好的标题。
使用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
一样。
在内容脚本中使用这些值时会出现一些问题。
如果我选择一个模型,我将每个配置文件存储在根目录而不是数组,我将不得不在几个单独的轮次中执行上述 异步 。首先得到 current_profile ,有一个回调函数,然后请求该密钥,第三个回调函数向结果报告发起者。这很复杂,导致额外的代码。
截至目前,我保存 current_profile_id 持有id并且 current_profile 持有配置文件数组中条目的副本,以便我可以请求当前在内容脚本中,但这也是丑陋的,因为它仅在请求时强制根级别的欺骗。
在每个级别上存储都会被检索,同步或更新复杂性,更重要的是,冗余是一个有点高的因素。
我在设计过程中遗漏了一些东西。有没有更好的方法来解决这个问题?