什么是react js中的service worker

IT技术 javascript reactjs service-worker
2021-05-15 07:07:44

创建 React 应用程序时,默认调用 Service Worker。为什么使用 Service Worker?默认调用的原因是什么?

3个回答

您的应用程序可能不需要 Service Worker。如果您使用 create-react-app 创建项目,默认情况下会调用它

服务人员在很好的解释这个文章。从中总结

Aservice worker是浏览器在后台运行的脚本,与网页分开,为不需要网页或用户交互的功能打开大门。今天,它们已经包括像push notifications这样的特性background sync并且有 ability to intercept and handle network requests,包括 programmatically managing a cache of responses

将来,Service Worker 可能会支持其他东西,例如 periodic syncgeofencing

根据这个PR 来 create-react-app

Service workers通过 create-react-app 引入 SWPrecacheWebpackPlugin

使用具有缓存优先策略的服务器工作者可提供性能优势,因为网络不再是满足导航请求的瓶颈。然而,这确实意味着开发人员(和用户)只会在“N+1”访问页面时看到已部署的更新,因为之前缓存的资源是在后台更新的。

register service worker在新应用程序中默认启用调用,但您可以随时将其删除,然后您就会恢复正常行为。

简单来说,就是一个浏览器后台运行的脚本,与网页或DOM没有任何关系,提供开箱即用的功能。它还可以帮助您缓存资产和其他文件,以便在用户离线或网络缓慢时使用。

其中一些功能是代理网络请求、推送通知和后台同步。Service Worker 确保用户拥有丰富的离线体验。

您可以将 Service Worker 视为位于客户端和服务器之间的人,所有向服务器发出的请求都通过 Service Worker。基本上,一个中间人。由于所有请求都通过 Service Worker,因此它能够即时拦截这些请求。

在此处输入图片说明

我想添加关于 Service Worker 的 2 个重要注意事项以供考虑:

  1. Service Worker 需要 HTTPS。但要启用本地测试,此限制不适用于localhost. 这是出于安全原因,因为 Service Worker 就像处于 Web 应用程序和服务器之间的中间人

  2. 使用Create React App Service Worker 仅在生产环境中启用,例如在运行npm run build.

Service Worker 是来帮助开发渐进式 Web 应用程序的在 Create React App 的上下文中可以找到关于它的一个很好的资源,可以在他们的网站上找到