后台脚本多次加载

时间:2014-09-11 10:22:07

标签: javascript google-chrome-extension

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

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

var monitor = new UrlMonitor();

在UrlMonitor.js中,我有一些由事件回调访问的全局变量。

var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();

我注意到脚本多次加载调用,多次调用

var monitor = new UrlMonitor(); 

var nativePort = null;
var TabInfoKP = new Object();
var TabInfoKPN = new Object();

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

我做错了什么还是这个预期的功能? 如果这是预期的功能,我的替代方案是什么?

P.S,我是JS和Chrome扩展的新手。

1 个答案:

答案 0 :(得分:0)

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

很抱歉这个问题,但是这一直困扰着我今天,所有我必须做的就是将鼠标悬停在chrome调试器上的continue图标上,以实现F5不是指定的快捷键! 有谁知道在chrome调试器中继续的快捷方式是什么?