设想:
- 用户已登录。
- 网站已更新。
- 用户已缓存 html/js 并调用旧端点。世界末日。
我知道网站经常会说“产品已更新,请刷新您的浏览器”。但是这通常是怎么做的呢?
我可以想象两种方式:
- 偶尔在导航时调用 db,检查存储在角度常量中的版本与存储在 db 中的版本。如果不匹配,通知。
- 即使浏览器没有在网站上执行任何操作,SignalR 的某种场景也会推送检查。
我错过了什么吗?考虑到我们的堆栈(见标签),有什么好的方法来做到这一点?
设想:
我知道网站经常会说“产品已更新,请刷新您的浏览器”。但是这通常是怎么做的呢?
我可以想象两种方式:
我错过了什么吗?考虑到我们的堆栈(见标签),有什么好的方法来做到这一点?
如果您真的不想缓存内容,对于 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>