网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

网站中的图片缓存

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

动态页中存在大量图片而影响速度,是在项目开发中所不可以避免的问题,考虑缓存图片却保持页面的执行是个很不错的选择。
实现一个IhttpHandler对特定的文件格式进行处理,对于图片可以是.jpg也可以是其他的格式,当客户端请求有.jpg后缀的文件时IIS自动将文件交给asp_isapi执行然后实现IhttpHandler 接口中的ProcessRequest方法对页面进行缓存,同时还能对图片进行其他的操作,如添加水印,裁剪图片等操作。

具体操作流程如下:在IIS中配置网站添加一个.jpg映射交给asp_isapi处理然后在Web.Config中进行相关配置:

<httpHandlers>
      <!--只处理.jpg文件,可以分目录缓存图片aaa/*.jpg-->              
      <addpath="*.jpg"verb="*"type="ImageCache.CachingHandler,ImageCache"/>
</httpHandlers>

然后在创建一个类CachingHandler : IhttpHandler继承IhttpHandler接口

实现ProcessRequest方法

public void ProcessRequest(HttpContext context)
{
            string imagePath = context.Request.PhysicalPath;//获取服务器路径
            Bitmap image = null;
            image = new Bitmap(imagePath);            
            context.Response.Cache.SetCacheability(HttpCacheability.Private);//在客户端缓存
            context.Response.Cache.SetMaxAge(new TimeSpan(7, 0, 0, 0));//缓存时间为5秒
            image.Save(context.Response.OutputStream, ImageFormat.Jpeg);              
}

在页面中添加一个图片并执行这个事件

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(DateTime.Now.ToString());
}

可以看到页面没有被缓存但其中的图片确被缓存了下来。

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师