问题描述
我们即将发布我们的第一个 Blazor WebAssembly 独立应用程序(即不托管在 .Net Core 上)。我开始喜欢 Blazor 并期待用它制作一些很棒的应用程序!然而,推送应用程序更新一直令人头疼!似乎有一个难以更新的持久缓存,超级烦人!可能是我缺乏理解,但它似乎并不像每个人说的那样有效。
我想构建某种应用版本控制系统和一种通知用户有可用更新的方法。最重要的是,我想让用户能够手动执行更新……但是搜索这个主题很困难。我一定没有使用正确的关键字,因为似乎没有关于 Blazor 的文档?
如果我将 Blazor 排除在搜索查询之外,那么如果我理解正确的话,其他 SPA 应用程序似乎会通过 Service Worker 执行此操作?然而,这是一个完全不同的深入主题,如果我的理解是正确的,显然我必须学习一些东西?
谁能引导我朝着正确的方向学习如何创建这样的更新流程?
解决方法
好的...所以我现在的答案是一个补丁。花了一段时间才弄清楚,因为我知道发生了什么......无法像我想要的那样清除缓存......我只是不明白为什么。许多关于 Blazor 的教程和培训,但 Service Worker 应该是 WebAssembly 应用程序应该包含的其中之一。不幸的是,此时我找不到任何东西,直到我将 Blazor 排除在我的 Google 搜索之外并且只是研究了一般的 SPA 缓存问题。
诚然,Service Worker 本身并不是 Blazor 特定的技术……但是,如果您正在构建 SPA,那么您至少应该了解并学习如何使用它。然而,这不是一个轻松的主题,所以现在我只是注释掉 service-worker.published.js 中的所有代码,并将其替换为用于开发的一个 liner service worker,即 service-worker.js 文件:
我知道这不是最终解决方案......最终我将不得不学习如何充分利用服务工作者。但是现在它可以按我的意愿工作,因为我希望我的开发更改立即可用。