我在我的PWA中有一个挑战。由于性能问题,我不能在初始加载时下载所有的js文件,所以每个页面,下载它的块,在加载时间。在这种情况下,如果我部署了一个新版本,而之前的‘deploy chunk’还没有下载,deploy time active users将会在应用程序上崩溃。我想知道,有没有办法下载所有块并在后台更新服务工人的PWA?
发布于 2020-04-01 00:56:59
在某些情况下,您可以使用Periodic Background Sync通过定期刷新使缓存的数据保持最新。然而,它并不是一种允许你为你的web应用缓存关键资源的方式--更多地把它看作是一种可选的、值得拥有的更新方式。
如果您有需要缓存的资源,并且这些资源都是一起版本化的,那么它们都应该添加到install handler中的缓存中。
如果您不能下载install处理程序中的所有文件,那么我认为您需要重新考虑使用服务工作程序是否适合您,因为不能保证使用不同的方法会得到一致的缓存。
您可以考虑的一种解决方法是显示“正在加载...”或者“下载资产...”当用户第一次访问你的web应用程序时,在他们可以与之交互之前,启动屏幕,当屏幕打开时,注册你的服务工作者,并允许它在其install处理程序中填充缓存。一旦install处理程序完成,您就可以删除“正在加载...”屏幕并允许您的用户与您的web应用程序交互。
https://stackoverflow.com/questions/60912092
复制相似问题