Javascript 多次加载后台脚本

Javascript 多次加载后台脚本,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我在扩展清单中声明了2个后台页面,扩展本身是持久的: “背景”:{ “执着”:对, “脚本”:[“UrlMonitor.js”,“background.js”] } 在我的background.js中,我正在创建UrlMonitor的一个实例(在UrlMonitor.js中定义) 在UrlMonitor.js中,事件回调访问了几个全局变量 var nativePort = null; var TabInfoKP = new Object(); var TabInfoKPN = new Objec

我在扩展清单中声明了2个后台页面,扩展本身是持久的: “背景”:{ “执着”:对, “脚本”:[“UrlMonitor.js”,“background.js”] }

在我的background.js中,我正在创建UrlMonitor的一个实例(在UrlMonitor.js中定义)

在UrlMonitor.js中,事件回调访问了几个全局变量

var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();
我注意到脚本中的调用被多次加载,并且多次调用

var monitor = new UrlMonitor(); 

我希望脚本加载一次并保留在后台,只响应事件回调。我正在使用全局选项卡InfoKP跟踪选项卡状态(通过在事件回调中更新它们)。通过多次初始化,我释放了变量中先前存储的信息。即使创建/更新了新选项卡等,也会发生加载

我是否做错了什么,或者这是预期的功能? 如果这是预期的功能,我的备选方案是什么


另外,我对JS和chrome扩展一无所知。

好的。。。我设法避免了这种情况的发生。 我一直在调试器下运行这个脚本,每次我遇到断点时,在调试之后,我按F5(VisualStudio中的旧习惯),这似乎会触发问题。也许运行时正在重新加载脚本并重新开始

很抱歉给您带来了麻烦,但这一点今天困扰了我一整天,我所要做的就是将鼠标悬停在chrome调试器上的continue图标上,意识到F5不是指定的快捷键!
有人知道在chrome调试器中继续的快捷方式是什么吗?

如果没有更多的代码,很难说。但是不,如果后台脚本是持久的,它应该只执行一次。唯一缺少的代码是回调。我有tabs.OnCreated和tabs.OnUpdated的回调,它们所做的只是将tabId和正在访问的url添加到全局TabInfoKP变量中。在sources选项卡上是f8
var monitor = new UrlMonitor(); 
var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();