什么是服务工作者反应js

use*_*rgs 62 javascript reactjs service-worker

创建react应用程序时,默认情况下会调用服务工作程序.为何使用服务工作者?默认调用的原因是什么?

Shu*_*tri 75

您的应用程序可能不需要服务工作者.如果您使用create-react-app创建项目,则默认情况下会调用它

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

A service worker是您的浏览器在后台运行的脚本,与网页分开,为不需要网页或用户交互的功能打开了大门.如今,他们已经有类似的特征push notifications,并background sync与有 ability to intercept and handle network requests,包括 programmatically managing a cache of responses.

今后,服务人员可能会支持其他像 periodic syncgeofencing.

根据这个PR来创建反应应用程序

Service workers与create-react-app via一起介绍 SWPrecacheWebpackPlugin.

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

register service worker默认情况下,新应用中会启用此调用,但您可以随时将其删除,然后又恢复正常行为.

  • 至于现在生成的 reactjs 应用程序有 sw 代码,但注释指出没有调用 register 函数。所以问题是我可以在哪里调用它? (2认同)
  • @Siddhartha你能提供一个具体的例子吗?也许可以更新答案?我发现这非常有用,但缺少那些最终的细节。谢谢。 (2认同)

Nik*_*ikz 26

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

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

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

在此处输入图片说明


Ano*_*uar 9

我想添加关于 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 的上下文中可以找到关于它的一个很好的资源,可以在他们的网站上找到