我正在使用generateimage.aspx
页面作为图像的图像来源。
当调用此页面时,我传递一个查询字符串,然后使用Session["abc"]
var将其值重新设置为jpg图像。
GenerateImage页面从另一个页面test.aspx调用,如GenerateImage.aspx?text=P
作为img标签下的图像源。然后返回的值以图像的形式显示。
问题:有时这个页面被调用而有些时候没有。 因此,当未调用页面时,返回的图像值是在上一个Session中分配给Session [“abc”] var的图像值。
请让我知道可能是某个时候有时会调用该页面的原因 我该如何处理这个问题。
答案 0 :(得分:3)
我认为这是一个缓存问题。通过在请求URL的末尾附加时间戳或随机数作为查询字符串来解决此问题。
像
这样的东西GenerateImage.aspx?text=P&dynstr=" + (new Date()).getTime();
答案 1 :(得分:0)
您可以通过以下方式禁用缓存:
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
答案 2 :(得分:0)
我同意@pulse,HTML图像通常被大多数浏览器缓存。所以你有两个选择:1。在源上附加一个随机字符串(不是我最喜欢的,因为它只是一个黑客)2。通过设置响应头(更好的IMO)设置页面强制没有缓存。
另一件事是我会切换到处理程序(ashx页面)而不是标准的aspx页面进行图像处理,因为它具有更轻的占用空间/生命周期,并且可以轻松地重复使用。