什么是服务工作者

在创建一个响应应用程序时,默认情况下会调用服务工作者。为什么使用服务人员?默认调用的原因是什么?

104931 次浏览

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

翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳对服务人员进行了很好的解释

A service worker is a script that your browser runs in the 背景,独立于网页,打开大门的功能 that don't need a web page or user interaction. Today, they already 包括功能,如 push notificationsbackground sync和有 ability to intercept and handle network requests包括 programmatically managing a cache of responses.

将来,服务人员可能会支持 periodic syncgeofencing

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

Service workers are introduced with create-react-app via SWPrecacheWebpackPlugin.

Using a server worker with a cache-first strategy offers performance advantages, since the network is no longer a bottleneck for fulfilling 导航请求。这确实意味着,但是,开发人员(和 用户)只会看到已部署的“ N + 1”更新 访问页,因为以前缓存的资源在 背景。

在新的应用程序中,对 register service worker的调用是默认启用的,但是你可以随时删除它,然后恢复正常行为。

简而言之,这是一个脚本,浏览器在后台运行,与网页或 DOM 没有任何关系,并提供开箱即用的功能。它还可以帮助您缓存您的资产和其他文件,以便当用户脱机或在缓慢的网络上。

其中一些特性是代理网络请求、推送通知和后台同步。服务人员确保用户有丰富的离线体验。

您可以将服务工作者看作是位于客户机和服务器之间的人,向服务器发出的所有请求都通过服务工作者传递。基本上就是个中间人。由于所有请求都通过服务工作者传递,因此它能够动态拦截这些请求。

enter image description here

关于服务人员,我想补充两点需要考虑的重要因素:

  1. 服务工作者需要 HTTPS。但是为了支持本地测试,这个限制不适用于 localhost。这是出于安全原因,因为 ServiceWorker 在 Web 应用程序和服务器之间的作用类似于 中间的人

  2. With 创建应用程序 Service Worker is only enabled in the production environment, for example when running npm run build.

服务员是来帮助开发 进步网络应用程序的。在他们的网站 给你中可以找到关于创建反应应用程序的一个很好的资源。