正确刷新单页应用程序的方法

时间:2016-10-05 20:08:41

标签: angular single-page-application

我有一个angular2单页应用。我想在将新版本滚动到生产服务器时提示用户重新加载页面。我听说过AppCache。我听说过服务工作者。

此操作的公认惯例是什么?

您通过哪个流程来检测更改,然后强制刷新?

浏览器中是否有支持此内容的内容?

谢谢。

1 个答案:

答案 0 :(得分:1)

Idon不知道是否有标准练习,但这里是我成功完成的一次,成功:

当我部署版本123时,我确保主index.html文件包含以下行:

<script>var MYAPP_VERSION=123;</script>

并且后端作为AJAX请求的所有响应的标头发送标头x-myapp-version=123

在应用程序中(angular1,但你可以使用angular 2类似的东西),每次我从后端收到一个AJAX响应时,我会检查标题中的版本是否与MYAPP_VERSION中的版本相同。

如果版本不同,则表示已部署新版本,但用户仍在使用旧版本(即尚未刷新主页面)。然后我显示一条警告消息或一个弹出窗口(或我强制刷新),以确保页面刷新。这与JS文件和模板中的哈希版本(或适当的缓存配置)相结合,可以确保用户获得新版本的文件。