javascript - 火狐安卓 : how long does a webextensions background script last?

标签 javascript android firefox firefox-addon-webextensions firefox-android

具体来说,如果我在 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的东西.

关于javascript - 火狐安卓 : how long does a webextensions background script last?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44125132/

相关文章:

android - 权限拒绝 : not allowed to send broadcast android

javascript - 在 Chart.js 中隐藏 y 轴上的标签

javascript - 单击添加按钮绝对没有任何作用,我不知道为什么

android - 如何在带有 php mysql 的 android 中的一个 Activity 中使用两个微调器

java - Asynctask 异常 - android

python - webbrowser.get ("firefox") 在装有 Firefox "could not locate runnable browser"的 Mac 上

css - 来自 materializecss 的 Roboto 在 Chrome、Firefox、IE 中呈现奇怪的字体?

firefox - Firefox 开发者工具有哪些替代品?

javascript - jQuery 丢失 div 换行,+ 修改元素的问题

javascript - 如何设计商店(应用程序状态)以便我们直接更改商店中的数据而无需操作, reducer ?