ASP.NET - Window.Open(URL) - 文件被缓存,我该如何阻止它?

时间:2011-07-28 19:29:41

标签: c# javascript asp.net caching window.open

我正在使用ASP.NET加载PDF。这些文件由后面的代码中的简单JavaScript调用:

ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "window.open('" + url + "')", true);

有没有办法阻止IE缓存这些文件?也许有些东西可以添加到JS的endo来防止缓存?某些文件是根据用户输入修改的,因此下次加载相同的URL时,相同的文件名可能是完全不同的文件。

我尝试在修改和保存之前删除该文件,但这没有帮助。唯一有帮助的是在PDF加载到IE窗口后手动刷新IE窗口。

谢谢!

3 个答案:

答案 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页面上