javascript - 如何在无需重新启动的 Firefox 扩展中交换数组文件?是不是更新数组元素而不是整个扩展?

标签 javascript firefox firefox-addon firefox-addon-restartless

我有一个无需重新启动的 Firefox 扩展,其中有一个用于某些决策的数组。该数组的元素可能会随着时间的推移而改变。

目前,我的 bootstrap.js 文件调用另一个 .js 文件中存在的各种函数。这个数组位于这些函数之一内。

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

我想到的是;将该数组提取到一个单独的 .js 文件中,并计划在安装后“更新”数组时交换它。

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

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

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

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

最佳答案

当 xpi 进行新安装时,您包含在 xpi 中的任何内容都将被更新。

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

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

关于javascript - 如何在无需重新启动的 Firefox 扩展中交换数组文件?是不是更新数组元素而不是整个扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37104000/

相关文章:

javascript - 将 div 元素中多个实例中找到的数字替换为另一个数字

javascript - 从 Wikipedia api 的 Fetch blob 中获取响应数据

jquery - 将鼠标悬停在选择下拉菜单上时,包含 div 会失去焦点

html - 如何在firefox中模拟css缩放?

c++ - WM_GETICON 不工作 (Windows)

javascript - 如何使用 CSS 为动态创建的元素设置样式

javascript - ajax/JS 定时倒计时?

javascript - Firefox - 在 contenteditable 中聚焦一个段落

firefox - 如何禁用 Firefox 加载项在启动时进行更新检查

session - 如何在 Firefox 中跨设备同步 "session manager" session ?