有没有办法手动卸载 chrome 扩展程序的后台脚本?
Is there a way to manually unload a background script for a chrome extension?
我正在开发一个 Chrome 扩展程序来跟踪您使用计算机的时间。我使用一个间隔递增,并使用 chrome.idle.queryState 检查计算机是否被锁定,如果它被锁定,我不会更改我的计数器。
有没有办法手动卸载后台页面,而不是不断检查间隔?或者后台脚本是否会自动卸载并重新加载,就像计算机休眠 X 分钟后一样?由于我有一个间隔,我想知道脚本是否会自行卸载。我做了类似的事情:
setInterval(function () {
chrome.idle.queryState(15, function (state) {
if (state !== "locked") {
counter += 1;
console.log(counter);
}
}
}, 6000);
感谢 wOxxOm 和 Nadia Chibrikova 回答问题。在卸载脚本时,最好使用非持久化的后台脚本,像这样:
...
"background": {
"scripts": ["background.js"],
"persistent": false
},
...
这将在 15-30 秒后卸载,无论任何间隔如何,只要没有打开的消息端口并且您不在 devtools 中检查它。为了我的目的,我保持一个消息端口打开,所以我使用一个变量来跟踪 Chrome 是否空闲或不使用 chrome.idle.onStateChanged,并相应地修改我的代码,如下:
chrome.idle.setDetectionInterval(15);
chrome.idle.onStateChanged.addListener(function (state) {
if (state === "locked") {
isLocked = true;
} else {
isLocked = false;
}
});
我正在开发一个 Chrome 扩展程序来跟踪您使用计算机的时间。我使用一个间隔递增,并使用 chrome.idle.queryState 检查计算机是否被锁定,如果它被锁定,我不会更改我的计数器。
有没有办法手动卸载后台页面,而不是不断检查间隔?或者后台脚本是否会自动卸载并重新加载,就像计算机休眠 X 分钟后一样?由于我有一个间隔,我想知道脚本是否会自行卸载。我做了类似的事情:
setInterval(function () {
chrome.idle.queryState(15, function (state) {
if (state !== "locked") {
counter += 1;
console.log(counter);
}
}
}, 6000);
感谢 wOxxOm 和 Nadia Chibrikova 回答问题。在卸载脚本时,最好使用非持久化的后台脚本,像这样:
...
"background": {
"scripts": ["background.js"],
"persistent": false
},
...
这将在 15-30 秒后卸载,无论任何间隔如何,只要没有打开的消息端口并且您不在 devtools 中检查它。为了我的目的,我保持一个消息端口打开,所以我使用一个变量来跟踪 Chrome 是否空闲或不使用 chrome.idle.onStateChanged,并相应地修改我的代码,如下:
chrome.idle.setDetectionInterval(15);
chrome.idle.onStateChanged.addListener(function (state) {
if (state === "locked") {
isLocked = true;
} else {
isLocked = false;
}
});