0

我有一个无需重启的 Firefox 扩展,其中有一个用于某些决策的数组。这个数组的元素可以随时间改变。

目前我有我的bootstrap.js文件,它调用另一个.js文件中存在的各种函数。在这些函数之一中就是这个数组。

我试图弄清楚如何重组我的代码,以便我可以在安装后更新这个数组(不是整个扩展)。

我想到的是;将此阵列拉出到一个单独的.js文件中,并计划在安装后使阵列“更新”时交换它。

但是,我仍然不明白该怎么做。我理解的方式是,我捆绑了我的附加组件,因为.xpi它已安装,然后可以进行部分升级吗?

我不想为此推另一个.xpi。而且我认为这也会让用户意识到扩展程序已经更新。因为,数组更新可能很频繁,这对于每周左右发生的用户更新来说看起来真的很奇怪。

我可以通过一个 API 来执行此操作,该 API 将获取更新的数组并将其交换到代码中(.push对现有数组执行)?基本上,我希望它对用户来说是不可见的并且也是轻量级的。

我怎样才能以更好/正确的方式做到这一点?如果我要的东西目前不可能,请告诉我。

4

1 回答 1

1

您在 xpi 中包含的任何内容都将在新安装该 xpi 时更新。

正如您提到的更新会很频繁,您可以从远程端点获取数组。这可以是一个 json 文件,也可以是你认为更合适的其他调用。为了提高性能,您可以从远程端点获取数组,将其存储在用户配置文件目录中,并且仅根据某个到期期限(例如每周或每两周)再次获取它。

请注意,在这种情况下,如果您的扩展程序需要通过 AMO 分发,则审核过程可能需要一些额外的步骤,例如包括隐私政策,禁止对数组内容使用 eval。

于 2016-05-09T06:17:59.210 回答