有没有一种更简单的方法可以确定Blazor应用程序(PWA)是否有可用的更新



当我寻找确定Blazor应用程序(PWA(有可用更新的示例时,我发现许多冗长的示例都集中在serviceworker.js重写上。有更简单的方法吗?还是让服务工作者.js保持原样?

我使用了一种类似的方法,即将版本号与应用程序(客户端和服务器API应用程序(相关联。您可以在MainLayout.razor页面的Initialize方法中编写一些代码,以从服务器(API(应用程序检查当前版本。如果服务器的当前版本与客户端(Blazor WebAssembly(应用程序上的版本不匹配,则意味着需要更新该应用程序。

因此,我对Blazor应用程序的理解是,您正在下载一个已编译的应用程序,这是一个您将使用服务工作者缓存的响应。

因此,对于任何响应对象,HTML、JS、CSS、image、Blazor blob都无关紧要,我的服务工作者中通常有一些逻辑来检查更新。

我在PWA中使用的一种通用技术是触发某种工作流来发出HEAD请求,以查看服务器上是否更新了过时的对象。如果它们已经更新,那么我获取并替换缓存的资产。

在您的情况下,由于用户体验是一个不会直接与服务人员通信的黑匣子,您要么等到用户关闭当前会话并返回后再使用新版本。或者,向使用客户端JavaScript捕获的实际UI层发送一条消息,以在用户确认要使用新版本后显示某种提示,从而触发页面刷新。

相关内容

  • 没有找到相关文章

最新更新