Reactjs 当我的应用程序经常与服务器通信时,我是否需要一名服务人员?

Reactjs 当我的应用程序经常与服务器通信时,我是否需要一名服务人员?,reactjs,express,socket.io,service-worker,Reactjs,Express,Socket.io,Service Worker,我正在开发一个简单的聊天应用程序,它使用以下框架和库:react,socket.io,express 当用户第一次打开web应用程序时,他会看到一个登录表单,在登录之后,服务器检索所有用户的列表,并将其发送到客户端。当有人编写新的消息时,服务器将消息发送到所有客户端 正如您所见,应用程序的每个部分都取决于服务器 使用服务人员有意义吗?真的吗 据我所知,服务人员擅长存储图像,css,js文件,它可以帮助用户在没有互联网连接的情况下使用应用程序 但是我不知道什么时候一切都取决于服务器。你有一个很好的

我正在开发一个简单的聊天应用程序,它使用以下框架和库:
react
socket.io
express

用户
第一次打开web应用程序时,他会看到一个
登录
表单,在
登录
之后,服务器检索所有
用户的列表
,并将其发送到
客户端
。当有人编写新的
消息时
服务器将
消息
发送到所有
客户端

正如您所见,应用程序的每个部分都取决于服务器

使用服务人员有意义吗?真的吗

据我所知,服务人员擅长存储
图像
css
js
文件,它可以帮助用户在没有互联网连接的情况下使用
应用程序


但是我不知道什么时候一切都取决于服务器。你有一个很好的问题

你当然可以使用服务人员,但最有可能的情况是其他应用程序无法使用它。您自己也概述了这个问题:您的网站依赖于服务器,因此无法使其脱机。其他一些网站可以脱机,也可以大部分脱机,在没有网络连接的情况下显示一些内容,并在连接恢复时提供完整的体验,但对于您的网站来说,情况并非如此

然而,根据您所给出的描述,您仍然可以轻松地使用ServiceWorker。您已经正确地了解到,SW非常擅长存储(缓存)静态资产,并在没有任何网络连接的情况下从设备缓存为其提供服务。您可以使用此功能,使您的网站更快。您可以使用软件主动缓存站点的所有静态资产,并让软件从本地缓存返回它们,而无需从网络请求任何内容。这将使您的站点更快,这取决于用户的连接性(如果用户的3G连接速度较慢,则软件将使站点超快速;如果用户有稳定的光纤或其他连接,则差异不会太大)

您还可以使您的站点在没有任何internet连接的情况下脱机可用。在这种情况下,你当然会向用户显示一条消息,说“嘿,你好像离线了!该死!你需要连接才能使用该应用程序。我们会在信息流动后继续!”因为这可能会让用户体验更好

因此,总而言之:您可以利用软件加快站点的初始加载速度,但您很可能不会像其他站点那样从软件配置中获得太多好处


如果您有任何其他问题或想澄清,只需评论:)

您有一个很好的问题

你当然可以使用服务人员,但最有可能的情况是其他应用程序无法使用它。您自己也概述了这个问题:您的网站依赖于服务器,因此无法使其脱机。其他一些网站可以脱机,也可以大部分脱机,在没有网络连接的情况下显示一些内容,并在连接恢复时提供完整的体验,但对于您的网站来说,情况并非如此

然而,根据您所给出的描述,您仍然可以轻松地使用ServiceWorker。您已经正确地了解到,SW非常擅长存储(缓存)静态资产,并在没有任何网络连接的情况下从设备缓存为其提供服务。您可以使用此功能,使您的网站更快。您可以使用软件主动缓存站点的所有静态资产,并让软件从本地缓存返回它们,而无需从网络请求任何内容。这将使您的站点更快,这取决于用户的连接性(如果用户的3G连接速度较慢,则软件将使站点超快速;如果用户有稳定的光纤或其他连接,则差异不会太大)

您还可以使您的站点在没有任何internet连接的情况下脱机可用。在这种情况下,你当然会向用户显示一条消息,说“嘿,你好像离线了!该死!你需要连接才能使用该应用程序。我们会在信息流动后继续!”因为这可能会让用户体验更好

因此,总而言之:您可以利用软件加快站点的初始加载速度,但您很可能不会像其他站点那样从软件配置中获得太多好处


如果您有任何其他问题或希望得到一些澄清,只需评论:)

当然您可以从服务人员中受益,它具有足够的通用性,适用于所有类型的应用程序,我不同意它仅适用于静态资产

显然,这完全取决于应用程序的实际需求。但从技术上讲,没有任何限制可以阻止您在服务工作者中缓存
用户
响应

请记住,“离线”是一种发生在多种情况下的情况-不仅远离网络覆盖范围,还包括中断、干扰、欺骗或通过隧道。因此,它也可能在你的应用程序运行期间间歇性地发生,为它做准备可能是有意义的


例如,您可以在中存储脱机邮件,对于在此期间发送的邮件,请注册以在连接恢复时将其发送到服务器。通过这种方式,用户可能仍然能够以有限的方式使用该应用程序(阅读之前交换的消息,并发布他们自己的消息,以便稍后发送)。

当然,如果有一个服务人员,您可以从中受益,它已经足够普遍,可以为所有人提供一个应用程序