FireFox Android: как долго длится фоновый скрипт webextensions?
В частности, если я создаю переменную в моем 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?
1 ответ
Фоновый скрипт WebExtension - это просто еще одна (невидимая) вкладка.
Если вы перезапустите Firefox до такой степени, что все вкладки будут перезагружены, эта невидимая вкладка будет перезагружена; там не должно быть никакого особого подхода к сохранению - ваш код по сути снова запускается из пустого состояния.
Если вам нужно настойчивость самостоятельно, вам нужно использовать что-то вроде browser.storage
API.