FireFox Android:webextensions 后台脚本持续多长时间?

FireFox Android: how long does a webextensions background script last?

具体来说,如果我在我的 background.js 中创建一个变量,然后关闭 firefox(以至于必须重新加载所有选项卡,但仍然保存),该变量是否仍然存在于我离开的状态吗?

在我的具体情况下,我想在选项卡更新时存储一些有关选项卡的数据。每当我查询选项卡时,我都不能依赖那里的数据,所以我必须在它们更新后立即获取它。如果我有一个全局对象,它会保留有关在 FF Android 关闭并重新打开之前更新的选项卡的信息,还是会重新设置为空,并在新选项卡出现时再次开始填充更新。简体:

var count = 0;

browser.tabs.onUpdate.adListener(function()
{
    count = count + 1;
});

//----------------------
// user updates a 3 tabs
//----------------------

console.log(count); // this prints 3

//===========================
// FF android is killed here!
//===========================
// FF android is re-opened
//===========================

//-------------------------
// user updates 3 more tabs
//-------------------------

console.log(count); // does this print 3 or 6?

WebExtension 的后台脚本只是另一个(不可见的)选项卡。

如果您重新启动 Firefox 以重新加载所有选项卡,则重新加载那个不可见的选项卡;那里不应该对持久性进行特殊处理 - 您的代码本质上是 运行 再次从空白状态开始。

如果你确实需要自己坚持,你需要使用像browser.storage API.

这样的东西