create-react-app的最佳服务人员策略是什么?

时间:2019-01-28 16:00:14

标签: javascript reactjs service-worker create-react-app

每个更新到生产版本的代码都会向用户显示白屏,直到他们刷新页面为止。将代码更新无缝推送给用户的最佳服务人员策略是什么? (无需刷新页面或清除缓存)

默认的服务工作者行为不是理想的。似乎每次生产代码更新都会导致浏览器显示白屏,直到用户手动刷新页面为止。我了解这可能需要sw-precache和为自定义服务工作者功能实现工作箱的方式-很好,而且我已经尝试了一下,并使这些库运行并工作到仍然模仿行为完全相同(因此,我认为该项目实际上已准备就绪,可以在不弹出的情况下实施正确的服务人员)。但是,我仍然不知道要使用什么最佳的缓存策略/服务工作者才能达到预期的效果?

1 个答案:

答案 0 :(得分:2)

嗨,蒂莫西!

我认为您现在已经找到问题的答案。我希望这个答案将对未来的开发人员有所帮助。

您所指的策略称为缓存策略。以下是常用的列表:

  • networkOnly –仅从网络获取
  • cacheOnly –仅从缓存中获取
  • fastest –从两者中获取,并以先到者为准
  • cacheFirst –从缓存获取,但也从网络获取并更新缓存

默认情况下,CRA的服务人员使用cache-first策略。

根据您的情况,您可以选择以下两种策略:

  • networkOnly策略

优点:将始终呈现该应用程序的最新版本(无白屏)

缺点:这将导致用户每次都从网络中获取应用。

  • networkFirst策略

可以在您的情况下使用此策略。您可以将软件设置为查找版本更新。如果找到新版本,则可以显示一个小烤面包机,上面写着“嘿,有新版本可用,请单击此处刷新”。


您还可以检查以下链接以获取更多信息: