根据我的理解,在Chrome扩展程序中,事件页面会在短时间内处于非活动状态,以释放Chrome中的内存。背景页面一直在运行。我想编写我的扩展程序以使用事件页面,并允许我的扩展程序不是内存耗尽。
由于事件页面处于非活动状态,我无法使用setInterval在后台定期运行代码。推荐的解决方案是使用chrome.alarms
API,如下所示:
chrome.alarms.onAlarm.addListener(function(alarm) {
if (alarm.name == 'name-of-alarm') {
// Do something...
testFunc();
}
});
// Create the alarm:
chrome.alarms.create('name-of-alarm', {
periodInMinutes: 10
});
我的问题是,当这段代码唤醒我的事件页面时,它会运行其中的所有代码,而不仅仅是我指定的testFunc()
。我的事件页面中有代码,我只想运行一次(当浏览器启动或重新加载/更新扩展时)。警报API似乎不适合我正在尝试做的事情。
在将活动页面保留为活动页面的同时处理此问题的最佳方法是什么?