小编use*_*750的帖子

每次唤醒时,清单 v3 Service Worker 顶层的整个代码是否都会重复运行?

经过测试:为了避免重复执行某些代码(比如chrome.contextMenus.create重复执行使得

未选中的runtime.lastError:无法创建具有重复ID的项目

),需要将其移至chrome.runtime.onInstalled.addListener. 但是chrome.action.onClicked.addListener移入的某些代码(例如 )chrome.runtime.onInstalled.addListener将不会在下次唤醒时运行。

如果chrome.action.onClicked.addListener放在Service Worker的最顶层,

每次 Service Worker 唤醒时是否会再次添加 Listener,

会有多个重复的听众吗?

新添加的Listener和之前添加的Listener中的函数会同时执行吗?

https://developer.chrome.com/docs/extensions/mv3/service_workers/说:

后台 Service Worker 在需要时加载,在空闲时卸载。一些例子包括:

  • 扩展首先安装或更新到新版本。
  • 后台页面正在监听一个事件,并且该事件被调度。
  • 内容脚本或其他扩展发送消息。
  • 扩展中的另一个视图(例如弹出窗口)调用runtime.getBackgroundPage。

“空闲时卸载”,之前添加的监听器也会被卸载吗?___如果是这样,如何再次唤醒服务人员?

或者只卸载前面添加的Listener中的功能,并保留Listener空壳只是为了唤醒service worker?

service-worker chrome-extension-manifest-v3

3
推荐指数
1
解决办法
715
查看次数