服务与Web工作者之间的技术差异

时间:2017-05-13 21:29:11

标签: multithreading web-worker service-worker worker

我研究过网络和服务工作者,我知道它们是针对不同的方法。 This thread更详细地描述了它们。但是,我不明白的是这两者之间的技术差异。虽然服务工作者应该是服务器和客户端应用程序之间的代理,但Web工作者也可以这样做。它可以访问XMLHttpRequest,因此您也可以将其用作代理。

Web Worker和Service Worker之间的技术差异是什么?

1 个答案:

答案 0 :(得分:2)

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

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