Service 和 Web Worker 之间的技术差异

Technical Differences Between Service and Web Workers

我研究过 Web 和 Service Worker,我知道它们适用于不同的方法。 更详细地描述了它们。但是,我不明白的是这两者之间的技术 区别。虽然 Service Worker 是服务器和客户端应用程序之间的代理,但 Web Worker 也可以是。它可以访问 XMLHttpRequest,因此您也可以将其用作代理。

Web Worker 和 Service Worker 之间的技术区别是什么?

两者之间的主要区别在于,Service Worker 旨在拦截通常直接发送到远程服务的网络请求并处理事件,以便前端客户端代码即使在网络中断时也能继续工作不可用。也就是说,为网络应用程序提供离线模式的基础。前端代码发出标准的 fetch() 请求,就好像它在与服务工作者拦截的服务器对话一样。

Web Worker 只是一个通用的后台线程。这里的目的是 运行 后台代码,使得长 运行ning 任务不会阻塞主事件循环并导致缓慢 UI。 Web Worker 不拦截网络请求,而是前端代码显式向 Web Worker 发送消息。