要求用户在部署构建后刷新

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

我在每次部署后使用 Angular 创建 SPA 我必须硬刷新页面才能获取最新内容 我想向用户显示一个弹出窗口,表明新版本可用,您可以刷新浏览器 我尝试使用 Service Worker 但卡住了当用户在这种情况下硬刷新浏览器时,我无法访问我的服务工作者函数,例如 checkforUpdate() 和 versionUpdates() 硬刷新后 swUpdate.Enables 给了我 true 但无法访问这些函数我该如何实现这一点

angular angular-service-worker angular16
1个回答
0
投票

很可能是一个非常临时的解决方案,直到其他人提出更好的建议。

但是您可以将文件添加到您的资产中,例如某种 JSON

{ "version": "xxx" }
并在应用程序组件中运行一个时间间隔,检查初始页面加载时设置的本地变量,并通过 HttpClient 对照该文件的远程 URL 进行检查。如果存在差异,您可以使用模式、警报或小吃栏向用户显示要求刷新的通知。

正如我所说,可能有更好的方法,但如果您需要快速实施它,这应该可以解决问题。每次重建时您都必须手动增加版本号:(

您还可以通过在构建期间生成 UUID 而不是版本号来自动化其中一些操作?但不知道该怎么做...

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