`
leonardleonard
  • 浏览: 777686 次
社区版块
存档分类
最新评论

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

阅读更多

程序中图片是动态显示的

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

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

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

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

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

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

namespace WebApplication3
{
 /// <summary>
 /// chart 的摘要说明。
 /// </summary>
 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的扩展名映射

分享到:
评论

相关推荐

    VeryIDE Bee 互动营销**台 v1.5 UTF-8.rar

    修正 活动汇总中心在 IE6 中样式兼容的问题,感谢 爱威海网 提交问题 修正 IE8 浏览器透明滤镜在部分情况下失效的问题,感谢 湖南妈妈网 提交问题 修正 共享广告不能实时更新缓存的问题,感谢 网友之家 提交问题 ...

    文章管理系统

    2.纠正后台文章编辑,获取编辑器图片无法获取网络图片路径问题 3.后台文章管理,标题后面加入是否含缩略图的图标 4.纠正后台文章编辑,保存远程图片到本地,如果缩略图是网络图片没纠正成本地路径的BUG 5.删除网站...

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    300个注册表优化修改文件

    解决IE首页无法更改的问题.reg 禁止IE播放视频.reg 禁止IE的代理服务器.reg 禁止IE浏览器的脚本调试程序.reg 禁止IE浏览器的升级检查.reg 禁止IE显示图片.reg 禁止IE自动安装组件.reg 禁止Outlook Express...

    WP主题:HotNewspro 2.72

    4. 由于发表的相册图片,不会显示在正常的页面中,所以需要在相册面板中新建一个相册分类,并将发表的图片划归到这个分类中,便于添加调用到“导航菜单”中,方便浏览者查看。 ■ 添加视频 启用主题后,在后台左侧...

    最新版114啦2010.9.23更新.rar

    .# 修复名站切换栏“我的收藏”网址IE浏览器下不在新窗口打开的Bug; .# 修复部分环境下后台左侧菜单不显示的Bug; .# 改进批量导入网址功能; .# 修正清空关键词分类后静态生成出错的Bug; .# 修正生成分类为空...

    EXCEL集成工具箱V8.0完整增强版(精简)

    作了18个分类, 而在函数向导对话框中也生成100个左右新的函数,用于扩展Excel的计算功能。且所有功能都通用于 Excel 2002、2003和2007、2010。支持中英文显示与繁简体操作系统、拥有20多款华丽的皮肤界面,支持Excel...

    EXCEL集成工具箱V6.0

    作了18个分类, 而在函数向导对话框中也生成100个左右新的函数,用于扩展Excel的计算功能。且所有功能都通用于 Excel 2002、2003和2007、2010。支持中英文显示与繁简体操作系统、拥有20多款华丽的皮肤界面,支持Excel...

    计算机应用技术(实用手册)

    后面是IDE设备的类型和硬件参数,TYPE用来说明硬盘设备的类型,我们可以选择AUTO、USER、NONE的工作模式,AUTO是由系统自己检测硬盘类型,在系统中存储了1-45类硬盘参数,在使用该设置值时不必再设置其它参数;...

    js使用小技巧

    窗体图片 document.images[索引] 窗体事件绑定 document.onmousedown=scrollwindow; 元素 document.窗体.elements[索引] 对象绑定事件 document.all.xxx.detachEvent("onclick",a); 插件数目 navigator....

Global site tag (gtag.js) - Google Analytics