javascript - chrome扩展后台执行时间限制
问题描述
我正在创建一个 Chrome 扩展程序,它在后台执行大量异步和繁重的工作。它从网络上下载大量图像,对其进行转换,然后将它们保存到一个 zip 文件中。完成这一切所需的时间可能超过 1 分钟。
我注意到有时不幸的是扩展程序没有完成工作,后台页面变得不活动并且执行停止。当我打开背景页面时,这永远不会发生 - 它只会在它关闭时发生。
我通过来自内容脚本的消息在后台脚本中启动工作。似乎如果我提供一个“sendResponse”回调,并且在后台表明我正在等待返回值为“true”的响应,它会起作用:
chrome.runtime.onMessage.addListener( (message, sender, sendResponse) => {
if (message.action === 'download') {
downloadAction(data, type).then(r => {
console.log('finished');
sendResponse('success');
})
}
return true;
})
当我不提供“真”的回报时,它不会。那么这是在后台执行长异步代码的正确方法,即使我对响应不感兴趣?或者这只是一种可行的解决方法?
当使用没有消息的消息启动时,扩展程序在后台工作的时间似乎是有限制的,那么return true;
使用警报启动呢?此外,当我表示我期待回复时,它的工作时间是否有限制return true;
?当然它不会让我无限期地运行后台脚本吗?
解决方案
推荐阅读
- javascript - Firebase 9.4.1 和 Javascript 身份验证功能“onAuthStateChanged”工作缓慢
- routes - Odoo webcontroller 路由冲突 - 如何解决这种情况?Odoover.12, 13, 14, 15
- python - 龟中移动的龟
- python-3.x - pandas:如何删除包含括号的字符串中的字符并将其保存为字符串列表
- php - 可以在准备SQL之前绑定参数吗?PHP PDO
- php - Laravel 查询价值需要爆炸
- python - 反向链表:为什么 head = head.next 的位置很重要?
- c++ - 使用 enable_if 根据模板类型隐藏成员函数
- python - 如何在 Python 请求中复制此 curl 命令
- excel - 定义 X 和 Y 轴的最小值和最大值