Google chrome extension 使用chrome.alarms API是在后台持久化MV3 chrome扩展的唯一方法吗?

Google chrome extension 使用chrome.alarms API是在后台持久化MV3 chrome扩展的唯一方法吗?,google-chrome-extension,Google Chrome Extension,我正在开发一个为用户下载文件数据的扩展(站点刮板)。“程序”(扩展)的平均运行时间可能是15-30分钟,我试图避免出现这样的情况:用户正在运行扩展,但意外(或有意)单击另一个窗口或屏幕,扩展弹出窗口消失,任何嵌入式脚本也随之消失 我注意到有alarms api,但它仅限于每分钟触发一次。这可能行得通,但我要监控的下载量不多(比如说30次下载)。对于每次下载,我都会发出一个API请求来检查该作业的状态——等待文件链接、下载、处理等。我原以为我可能会每隔5秒左右进行一次轮询,因此警报API上的延迟越

我正在开发一个为用户下载文件数据的扩展(站点刮板)。“程序”(扩展)的平均运行时间可能是15-30分钟,我试图避免出现这样的情况:用户正在运行扩展,但意外(或有意)单击另一个窗口或屏幕,扩展弹出窗口消失,任何嵌入式脚本也随之消失

我注意到有alarms api,但它仅限于每分钟触发一次。这可能行得通,但我要监控的下载量不多(比如说30次下载)。对于每次下载,我都会发出一个API请求来检查该作业的状态——等待文件链接、下载、处理等。我原以为我可能会每隔5秒左右进行一次轮询,因此警报API上的延迟越长,我想知道这是否是它的正确用例

我还预计处理给定下载可能需要一分钟以上的时间。alarms api提到,如果我为每分钟安排一次if,则第二次触发报警事件可能(或可能肯定?)终止先前的报警,在我的扩展中,该报警可能仍处于“忙碌”状态。这可能会导致扩展无限次地重新尝试相同的下载,每次在API报告成功之前,在处理过程中都会被中断

我已经考虑过简单地指示客户机在扩展中打开调试器窗口的选项,以防止它因失去页面焦点而关闭。(如果调试器api支持,可能会添加一个按钮,通过单击来启动调试器。)这将是粗糙且技术含量非常低的,但它也可以解决我正在处理的特定问题。它将是报警api的替代品。是否有另一个我可能要考虑的选择,或者甚至是我对我所提出的现有选项的误解?

我会使用。或者,您可以通过消息传递来持久化服务工作者。