-1

设想:

  1. 用户已登录。
  2. 网站已更新。
  3. 用户已缓存 html/js 并调用旧端点。世界末日。

我知道网站经常会说“产品已更新,请刷新您的浏览器”。但是这通常是怎么做的呢?

我可以想象两种方式:

  1. 偶尔在导航时调用 db,检查存储在角度常量中的版本与存储在 db 中的版本。如果不匹配,通知。
  2. 即使浏览器没有在网站上执行任何操作,SignalR 的某种场景也会推送检查。

我错过了什么吗?考虑到我们的堆栈(见标签),有什么好的方法来做到这一点?

4

1 回答 1

1

如果您真的不想缓存内容,对于 HTML,您需要将必要的元标记添加到

    <meta http-equiv="Cache-control" content="no-cache" />
    <meta name="expires" content="wed, 15 Sep 1993">
    <meta http-equiv="pragma" content="no-cache" />

对于 js 引用,您需要通过将令牌附加到文​​件名来缓存它们,例如:

    <script src="/path/to/script/myscript_1234567890.js"></script>

或者

    <script src="/path/to/script/myscript.js?v=1234567890"></script>
于 2016-03-16T00:12:21.033 回答