0

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

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

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

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

谢谢!

4

3 回答 3

1

将随机数附加到 url 的查询字符串。经常使用日期戳:

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

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

于 2011-07-28T19:32:34.173 回答
1

避免 IE 缓存问题(如果您不想修改缓存策略)的常见约定是将随机数(动态生成)附加到 url 的末尾作为查询字符串参数。这不必在服务器上读取,它只是有助于唯一区分请求的 url。

ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "window.open('" + url + "?random=' + Math.random())", true);
于 2011-07-28T19:32:56.893 回答
1
Response.Cache.SetExpires(-1);

在 asp.net 页面上

于 2011-07-28T19:33:35.383 回答