我研究过 Web 和 Service Workers,我知道它们适用于不同的方法。这个线程更详细地描述了它们。但是,我不明白的是这两者之间的技术差异。虽然 Service Worker 是服务器和客户端应用程序之间的代理,但 Web Worker 也可以是这样。它可以访问 XMLHttpRequest,因此您也可以将其用作代理。
Web Worker 和 Service Worker 之间的技术区别是什么?
两者之间的主要区别在于,Service Worker 旨在拦截通常直接发送到远程服务的网络请求并处理事件,以便前端客户端代码即使在网络不可用时也能继续工作。也就是说,为 Web 应用程序提供离线模式的基础。前端代码发出标准的 fetch() 请求,就好像它正在与服务工作者拦截的服务器交谈。
Web Worker 只是一个通用的后台线程。此处的目的是运行后台代码,以便长时间运行的任务不会阻塞主事件循环并导致 UI 缓慢。Web Worker 不会拦截网络请求,而是前端代码显式地向 Web Worker 发送消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句