繁体   English   中英

ASP.NET-Window.Open(URL)-缓存了文件,如何停止它?

[英]ASP.NET - Window.Open(URL) - File is cached, how do I stop it?

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

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

有没有一种方法可以防止IE缓存这些文件? 也许要在JS的内部添加一些内容以防止缓存? 有些文件是根据用户输入进行修改的,因此下一次加载相同的URL时,相同的文件名可能是完全不同的文件。

我尝试过删除文件,然后再进行修改和保存,但这无济于事。 唯一有用的是将PDF加载到IE窗口后对其进行手动刷新。

谢谢!

在网址的查询字符串中附加一个随机数。 经常使用日期戳:

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

这将确保不检索缓存的副本(缓存因查询字符串而异)。

避免此问题与IE缓存问题(如果您不想修改缓存策略)的常见约定是将随机数(即时生成)附加到url的末尾作为querystring参数。 不必在服务器上读取它,它仅有助于唯一地区分请求的URL。

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

在asp.net页面上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM