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

时间:2013-08-09 18:33:30

标签: javascript iis coldfusion requirejs http-caching

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

我们知道?ver=xxx解决方法,但我们使用RequireJS因此应用此类黑客攻击并不容易。

HTTP缓存控制是否有效?但是,我们注意到IIS没有立即获取JS文件更改,并且HTTP标头(上次修改)未反映最新更改。

ETag会更好吗?在IIS上最后修改它是好还是坏?

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

1 个答案:

答案 0 :(得分:5)

RequireJS有cache busting property你可以使用 - :

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

编辑 - :但是,正如Ian在下面指出的那样,建议不要将这种方式用于生产代码。

每次将新提交推送到生产时,您都可以改为添加特定的版本号。

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