缓存问题

时间:2011-04-25 11:12:09

标签: asp.net image caching

我遇到缓存问题。

当我更改Image控件的ImageUrl属性时,浏览器有时会使用缓存,因此不会显示新图像。

如何解决问题,以便在更改ImageUrl属性后显示新图像?

这是我的代码:

string url = some code;

imgAvatar.ImageUrl = url;

2 个答案:

答案 0 :(得分:3)

您可以通过添加以下选项来关闭页面缓存

      Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
        Response.Cache.SetNoStore();
        Response.Buffer = true;
        Response.CacheControl = "no-cache";
        Response.AddHeader("Pragma", "no-cache");
        Response.AppendHeader("Cache-Control", "no-store");
        Response.Expires = -1441;

答案 1 :(得分:1)

另一种避免单个组件缓存的方法是Joel在早期的StackOverflow播客中讨论的内容:在您要避免缓存的组件的url末尾附加一个唯一标识符作为http参数。然后在需要确保用户获得新版本时更新该标识符。

因此,如果您的网址是“http://www.mysite.com/images/myimage.png”,那么您可以使用“http://www.mysite.com/images/myimage.png?v=20110819a”

注意:通常这个技巧更适用于Javascript和/或CSS而不是图像。