ASP.. NET - windows . open (URL) -文件被缓存,我如何停止它

本文关键字:缓存 何停止 windows NET open ASP URL 文件 | 更新日期: 2023-09-27 18:04:06

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

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

是否有办法防止IE缓存这些文件?也许要在JS的末尾添加一些东西来防止缓存?有些文件会根据用户输入进行修改,因此在下次加载相同的URL时,相同的文件名可能是一个完全不同的文件。

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

谢谢!

ASP.. NET - windows . open (URL) -文件被缓存,我如何停止它

给url的查询字符串附加一个随机数。通常使用日期戳:

"window.open('"+url+"&_='+(new Date()).valueOf())"

这将确保缓存副本不被检索(缓存因querystring而异)。

Response.Cache.SetExpires(-1);

避免IE缓存问题的常见约定(如果您不想修改缓存策略)是在url的末尾附加一个随机数(动态生成)作为querystring参数。这并不需要在服务器上读取,它只是帮助唯一地区分请求的url。

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