0

특히, 내 background.js에 변수를 저장하고 파이어 폭스를 닫으면 (모든 탭을 다시로드해야하지만 여전히 저장해야하는 시점까지) 변수가 여전히 왼쪽 상태로 남아있게됩니까?FireFox Android : 웹 익스텐션 배경 스크립트는 얼마나 오래 지속됩니까?

내 구체적인 경우 업데이트 할 때마다 탭에 대한 일부 데이터를 저장하려고합니다. 탭을 쿼리 할 때마다 거기에있는 데이터에 의존 할 수 없어 업데이트가 완료되면 바로 가져와야합니다. 전역 개체가있는 경우 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과 같은 것을 사용해야합니다.