您当前的位置: 首页 >  缓存

消除图片在ie中缓存而无法更新的问题

发布时间:2004-10-26 19:03:00 ,浏览量:0

程序中图片是动态显示的

原先把打算把图片保存在服务器端然后显示

可是由于ie的缓存问题导致图片无法实时更新显示

所以改为把图片存在session中然后再显示

需要保存的时候再保存到本地

//--------------chart.ashx.cs-------------------

using System; using System.Web.SessionState; using System.IO; using System.Web;

namespace WebApplication3 {  ///  /// chart 的摘要说明。  ///  public class ChartHandler : IHttpHandler, IReadOnlySessionState  {   public bool IsReusable   {    get { return true; }   }       public void ProcessRequest (HttpContext ctx)   {    string chartID = ctx.Request.QueryString[0];    Array arr = (Array) ctx.Session [chartID];

   ctx.ClearError ();    ctx.Response.Expires = 0;    ctx.Response.Buffer = true;    ctx.Response.Clear ();

   MemoryStream memStream = new MemoryStream ((byte[])arr);    memStream.WriteTo (ctx.Response.OutputStream);    memStream.Close ();

   ctx.Response.ContentType = "image/gif";    ctx.Response.StatusCode = 400;    ctx.Response.End ();

  }  } }

   //--------------chart.ashx   只需要如下一行---------------

<% @ WebHandler language="C#" class="WebApplication3.ChartHandler" codebehind="chart.ashx.cs" %>

//WebApplication3为命名空间

//ChartHandler为chart.ashx.cs中类的名字 

//--------------调用说明-----------------

//需要把图片存到byte数组中 假设为byteArr  则

   // ------------------------------------------------------------------------    //把图片储存在session里面    // ------------------------------------------------------------------------    HttpContext     ctx = HttpContext.Current;    string          chartID = Guid.NewGuid ().ToString ();                ctx.Session [chartID] = byteArr;    Image1.ImageUrl = string.Concat ("chart.ashx?", chartID); 补充说明: 以 ashx 为扩展名的文件是HTTP handlers ,SimpleHandlerFactory 事件工厂知道如何编译该文件,并实例化IHttpHandler 接口,不需要配置web.config也不需要更新IIS的扩展名映射

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0465s