每个更新到生产版本的代码都会向用户显示白屏,直到他们刷新页面为止。将代码更新无缝推送给用户的最佳服务人员策略是什么? (无需刷新页面或清除缓存)
默认的服务工作者行为不是理想的。似乎每次生产代码更新都会导致浏览器显示白屏,直到用户手动刷新页面为止。我了解这可能需要sw-precache和为自定义服务工作者功能实现工作箱的方式-很好,而且我已经尝试了一下,并使这些库运行并工作到仍然模仿行为完全相同(因此,我认为该项目实际上已准备就绪,可以在不弹出的情况下实施正确的服务人员)。但是,我仍然不知道要使用什么最佳的缓存策略/服务工作者才能达到预期的效果?
答案 0 :(得分:2)
嗨,蒂莫西!
我认为您现在已经找到问题的答案。我希望这个答案将对未来的开发人员有所帮助。
您所指的策略称为缓存策略。以下是常用的列表:
networkOnly
–仅从网络获取cacheOnly
–仅从缓存中获取fastest
–从两者中获取,并以先到者为准cacheFirst
–从缓存获取,但也从网络获取并更新缓存默认情况下,CRA的服务人员使用cache-first
策略。
根据您的情况,您可以选择以下两种策略:
networkOnly
策略优点:将始终呈现该应用程序的最新版本(无白屏)
缺点:这将导致用户每次都从网络中获取应用。
networkFirst
策略可以在您的情况下使用此策略。您可以将软件设置为查找版本更新。如果找到新版本,则可以显示一个小烤面包机,上面写着“嘿,有新版本可用,请单击此处刷新”。
您还可以检查以下链接以获取更多信息: