Blazor Wasm PWA 未更新

ion*_*van 13 webassembly progressive-web-apps asp.net-core blazor

我有一个 Blazor WASM PWA 应用程序,已在 IIS 上的托管服务上发布。我遇到的问题是有时应用程序不会在访问者的浏览器中更新。即他们看到的是旧版本的应用程序。

我知道应用程序缓存应该由 Service Worker 更新,因此您可能需要访问该网站一次,然后关闭浏览器并再次访问它才能获取更新的版本。然而,有时看起来缓存只是被搞乱了,无论如何,应用程序都不会更新。我找到的唯一解决方案是按 F12,转到“应用程序”选项卡并删除其中的所有内容 -> 这将强制再次下载应用程序的最新版本。

有谁知道发生了什么事以及我该如何解决这个问题?

Mic*_*ang 8

js在 navigator.serviceWorker 对象中声明一个用于注册的文件。

 /**
  * Register Service Worker
  */
 navigator.serviceWorker
     .register('/***.js', { scope: '/' })
     .then(() => {
         console.log('Service Worker Registered');
     });
Run Code Online (Sandbox Code Playgroud)

该 js 文件可以包含如下所示的缓存版本。

 const CACHE_VERSION = 1.0.
Run Code Online (Sandbox Code Playgroud)

当代码更改时更新cache_version以强制刷新缓存。每当注册 *.js 文件发生更改时,浏览器都会将 Service Worker 更新到新版本。

 const CACHE_VERSION = 1.1;
Run Code Online (Sandbox Code Playgroud)

  • 我需要检查这个变量才能更新吗?你能改进你的答案吗? (2认同)