如何避免要求客户端清除浏览器缓存以获取最新的Javascript更改

How to avoid asking the clients to clear browser cache for the latest Javascript changes?

本文关键字:获取 最新 更改 Javascript 缓存 浏览器 何避免 客户端 清除      更新时间:2023-09-26

客户端会报告我们JS繁重的应用程序中的错误,我们修复了它,但客户端的浏览器仍在使用缓存副本。这种情况经常发生,要求我们的客户刷新浏览器缓存似乎技术含量很低,而且很麻烦。

我们知道?ver=xxx的解决方法,但我们使用RequireJS,所以应用这样的破解并不容易。

HTTP缓存控制是否有效?然而,我们注意到IIS不会立即接收JS文件的更改,HTTP头(上次修改)也不会反映最新的更改。

ETag能更好地工作吗?它比上次在IIS上修改好还是坏?

还有其他解决方案吗?感谢

RequireJS有一个可以使用的缓存破坏属性-:

require.config({
    urlArgs: "bust=" + (new Date()).getTime()
});

编辑-:但是,正如Ian在下面指出的,在他们的文档中,建议不要以这种方式用于生产代码。

每次你把一个新的提交到生产中,也许你可以添加一个特定的版本号。

require.config({
        urlArgs: "ver=1.1.1"
    });