[IE9] 请考虑以下代码:
var scr = document.createElement("script");
scr.src = "http://collector.bonzai.mobi/expfreq?hours=1&freq=1&adid=abc&sn=source1&pub=publisher";
scr.onload = function(){
alert("openPage " + openPage);
}
document.body.appendChild(scr);
问题是,当我将此代码直接放在 <script>
标记中时,它工作正常(意味着每次联系服务器以检索脚本时)。但是如果我在 document.onclick
函数中保留相同的代码,那么 IE9 就会在第二次从病毒库中缓存脚本。 (我可以看到304和<1ms)
PS :我无法使用 Date.now()
或任何类型的缓存突发机制附加到URL的末尾,因为后端实现依赖于缓存(ETag)。
另外,我建议您在尝试每次更改代码之前在IE浏览器中清除缓存。
任何建议都会有很大的帮助。感谢。
答案 0 :(得分:0)
我得到了问题的解决方案。从服务器设置“Cache-Control:private,must-revalidate”标头解决了这个问题。
答案 1 :(得分:0)
来自客户端的解决方案可能是:
scr.src = "http://collector.bonzai.mobi/expfreq?hours=1&freq=1&adid=abc&sn=source1&pub=publisher×tamp=" + new Date().getTime();
因此不会缓存每个请求。