我在每次部署后使用 Angular 创建 SPA 我必须硬刷新页面才能获取最新内容 我想向用户显示一个弹出窗口,表明新版本可用,您可以刷新浏览器 我尝试使用 Service Worker 但卡住了当用户在这种情况下硬刷新浏览器时,我无法访问我的服务工作者函数,例如 checkforUpdate() 和 versionUpdates() 硬刷新后 swUpdate.Enables 给了我 true 但无法访问这些函数我该如何实现这一点
很可能是一个非常临时的解决方案,直到其他人提出更好的建议。
但是您可以将文件添加到您的资产中,例如某种 JSON
{ "version": "xxx" }
并在应用程序组件中运行一个时间间隔,检查初始页面加载时设置的本地变量,并通过 HttpClient 对照该文件的远程 URL 进行检查。如果存在差异,您可以使用模式、警报或小吃栏向用户显示要求刷新的通知。
正如我所说,可能有更好的方法,但如果您需要快速实施它,这应该可以解决问题。每次重建时您都必须手动增加版本号:(
您还可以通过在构建期间生成 UUID 而不是版本号来自动化其中一些操作?但不知道该怎么做...