PWA何时以及如何更新?

问题描述 投票:9回答:1

据我所知,一旦你在PWA的网站上点击“添加到主屏幕”,浏览器就会使用提供的清单文件和源生成一个.apk,并像普通应用程序一样安装它。

我注意到,当我更新网站时,该应用程序还会显示更新的内容,这表明该应用程序只是访问该网站的包装器。我还注意到网站的更新没有立即显示,我认为这是由于内部缓存。

我的问题是,我的假设是否正确?或者更一般地说,PWA何时以及如何更新并且有没有办法在客户端计算机上强制更新?

android apk manifest service-worker progressive-web-apps
1个回答
11
投票

无缓存方案(无服务工作者):只有在使用Service worker时才会缓存PWA应用程序。 Manifest.json将帮助您将网络应用程序添加到主屏幕,并带有图标并打开,不带地址栏。如果您没有服务人员或浏览器不支持,则每次都会重新加载网页。没有缓存。

缓存场景(使用服务工作者):假设您已配置服务工作者,服务工作者可以通过延迟加载或预取为缓存配置的文件进行缓存(您可以包含或排除从html,CSS,图像到JSON /的任何缓存) XML API响应)。

在初始缓存之后,服务工作者将使用缓存来根据您从下面实施的cache approach为您的应用程序网络请求提供服务。

  • 缓存回退到网络
  • 网络回退到缓存
  • 然后缓存网络

由于性能优势,大多数应用程序选择precache并在加载时查找新文件,如果发现任何更改将在下一个会话中加载或提示用户刷新。使用此解决方案,每个文件将为服务工作者缓存的每个文件都有一个长哈希字符串。在加载每个应用程序时,将获取来自服务器的哈希代码以匹配并找到需要更新的文件,并且将在单独的服务工作线程中更新相同的文件。您可以在网络选项卡中注意到这一点 - > chrome developer tools中的服务工作者响应。

如果选择网络拳头方法,则可以避免在初始加载时显示旧内容,但缓存带来的显着性能优势。

© www.soinside.com 2019 - 2024. All rights reserved.