【发布时间】:2009-06-18 11:06:56
【问题描述】:
我正在使用 .ashx 检索图像,并将图像放在 ajax 更新面板中,当将新图像添加到表单时,它会检索图像,但是当我们更改图像时,它不会更新图像,它甚至不会调用 .ashx 文件,但是当我刷新浏览器时它可以正常工作
【问题讨论】:
标签: image asp.net-ajax ashx
我正在使用 .ashx 检索图像,并将图像放在 ajax 更新面板中,当将新图像添加到表单时,它会检索图像,但是当我们更改图像时,它不会更新图像,它甚至不会调用 .ashx 文件,但是当我刷新浏览器时它可以正常工作
【问题讨论】:
标签: image asp.net-ajax ashx
听起来像是缓存问题。尝试将找到的一些行 here 添加到您的 ashx 文件中,它应该有望强制浏览器重新请求图像。 (我知道该链接是针对 ASP 而不是 ASP.NET,但是像 Response.Expires = -1 这样的东西应该可以工作)
或者,您可以在更新面板中更改图像的路径吗?如果您只是在其末尾添加一个随机参数,浏览器会将其视为新请求(我们在执行此操作时使用当前日期/时间作为参数。ASP.NET 将忽略该参数,除非您明确引用它)
【讨论】:
做这样的事情:
var sPath = "../../handlers/ProcessSignature.ashx?type=View&UserID=" + userID + "&d=" + (((1 + Math.random()) * 0x10000) | 0)。 toString(16).substring(1);
这会将 4 个字符的字母数字字符串放在查询字符串的末尾。这不是必需的,但它会强制浏览器选择该图像的最新版本,因为 URL 不同。
我尝试了上述方法,但某些浏览器会忽略标题。我把所有这些都扔进去了,Chrome/FireFox 3 没有尝试更新。
IE7 有时可以工作
IE6 只是摆弄着它的拇指,问它为什么还存在。
更改上面的路径将在所有浏览器中修复它。
【讨论】: