我正在使用ASP.NET加载PDF。这些文件由后面的代码中的简单JavaScript调用:
ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "window.open('" + url + "')", true);
有没有办法阻止IE缓存这些文件?也许有些东西可以添加到JS的endo来防止缓存?某些文件是根据用户输入修改的,因此下次加载相同的URL时,相同的文件名可能是完全不同的文件。
我尝试在修改和保存之前删除该文件,但这没有帮助。唯一有帮助的是在PDF加载到IE窗口后手动刷新IE窗口。
谢谢!
答案 0 :(得分:1)
将随机数附加到网址的查询字符串。通常使用日期戳:
"window.open('"+url+"&_='+(new Date()).valueOf())"
这将确保不会检索缓存副本(缓存在查询字符串上有所不同)。
答案 1 :(得分:1)
避免IE缓存问题(如果您不想修改缓存策略)的常见约定是将随机数(动态生成)作为查询字符串参数附加到URL的末尾。这不必在服务器上读取,它只是有助于唯一地区分请求的URL。
ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "window.open('" + url + "?random=' + Math.random())", true);
答案 2 :(得分:1)
Response.Cache.SetExpires(-1);
在asp.net页面上