你有一个很好的问题。
您当然可以使用服务工作者,但很可能不会达到某些其他应用程序可以使用它的程度。您自己概述了问题:您的网站依赖于服务器,因此无法使其脱机。其他一些网站可以脱机或者可以大部分离线显示一些没有网络连接的内容,并在连接回来时提供完整的体验,但这听起来不像是你的网站。
根据您给出的描述,您仍然可以轻松使用Service Worker。你已经正确理解SW非常擅长存储(缓存) 静态资产 并在没有任何网络连接的情况下从设备的缓存中提供服务。您可以使用此功能,使您的网站更快。您可以使用SW主动缓存您网站的所有静态资产,并让SW从中返回 本地缓存 没有从网络请求任何东西。这将使您的网站更快或更快,具体取决于用户的连接(如果用户的3G连接速度较慢,那么SW会使网站速度过快;如果用户有稳定的光纤或其他什么,那么差异就不会不是那么大。
您还可以在没有任何互联网连接的情况下使您的网站脱机。在那种情况下,你当然会向用户显示一条消息,说“嘿,好像你已经离线了!拍!你需要连接才能使用这个应用程序。一旦我们得到了一些信息,我们就会继续!”因为这可能会使用户体验更好。
因此,总而言之:您可以利用SW来加快网站的初始加载速度,但您很可能不会像其他网站那样获得SW配置。
如果您有任何其他问题或希望得到一些澄清,请发表评论:)
当然,您可以从拥有服务工作者中受益,它具有足够的通用性,可以为各种应用程序提供应用程序,我不同意它只适用于静态资产。
这显然取决于您的应用程序的实际要求。但从技术上讲,没有任何限制可以阻止你缓存你的 users 服务工作者的回应。
users
请记住,“离线”是在多种情况下发生的情况 - 不仅远离网络覆盖范围,还包括中断,干扰,谎言或通过隧道。因此,它可以在您的应用程序操作期间间歇性地发生,并且准备它可能是有意义的。
例如,您可以将邮件存储为脱机 IndexedDB的 对于在此期间发送的消息,请注册a 后台同步事件 连接回来时将其发送到服务器。这样,用户可能仍然能够以有限的方式使用应用程序(读取先前交换的消息并发布他们自己的消息以便稍后发送)。