后台服务工作线程
扩展程序的后台服务工作线程功能强大,因为它在 服务工作线程上下文 (opens in a new tab) 中运行。例如,在此上下文中,您无需担心跨域资源共享 (CORS),可以从任何来源获取资源。通常还会将繁重的计算任务卸载到后台服务工作线程中。
要构建您的第一个后台服务工作线程,请在根目录下创建一个 background.ts
文件,然后开始编写代码 💪
background.ts
export {}
console.log(
"活在当下;让现在总是最珍贵的时光。此刻不会再来。"
)
⚠️
由于 Plasmo 的默认 TypeScript 配置将所有源文件视为模块,如果您的代码中没有任何导入或导出,您需要在文件开头添加一行 export {}
。当您创建第一个内容脚本时,会看到此警告!
重新加载扩展程序,然后打开其“服务工作线程检查器”:
您应该能在检查器中看到我们记录的内容:
请参阅 with-background (opens in a new tab) 获取完整示例。
持久化状态
⚠️
Plasmo 的 dev
模式下的服务工作线程将始终保持 活动
状态。
工作线程在几秒钟不活动后会进入空闲状态,并且浏览器会在 5 分钟后完全终止其进程。这意味着除非您使用存储引擎,否则所有状态(变量等)都会丢失。
持久化后台服务工作线程状态的最简单方法是使用 存储 API。
更高级的方法是通过 fetch 调用或 WebSocket 将状态发送到远程数据库。