0
フォームごとに50回以上呼び出しているためです。どのように私はクライアント側で画像をキャッシュすることができます。キャッシュからの動的生成画像
リフレッシュごとに、データベースが呼び出され、ヒットします。
<%@ WebHandler Language="C#" %>
using System;
using System.Web;
using System.Data.SqlClient;
using App_Code.BLL.Products;
public class ProductPicture : IHttpHandler
{
private Product _objProducts;
private ProductBL _objProductBL;
#region IHttpHandler Members
public void ProcessRequest(HttpContext context)
{
string strSize = context.Request.QueryString["PhotoType"];
_objProducts = new Product();
_objProductBL = new ProductBL();
_objProducts.PictureID = Convert.ToInt32(context.Request.QueryString["PhotoId"]);
SqlDataReader objReaderPhoto = _objProductBL.GetPictureByPictureID(_objProducts);
if (!objReaderPhoto.HasRows) return;
objReaderPhoto.Read();
context.Response.ContentType = "Image/JPEG"; //Convert.ToString(objReaderPhoto["Photograph"]);
context.Response.AddHeader("Content-Disposition", "attachment; filename=Image");
switch (strSize)
{
case "m":
context.Response.BinaryWrite((byte[])objReaderPhoto["PictureBinary"]);
break;
//case "s":
// context.Response.BinaryWrite((byte[]) objReaderPhoto["PhotoSearch"]);
// break;
case "t":
context.Response.BinaryWrite((byte[])objReaderPhoto["PictureThumbnail"]);
break;
default:
context.Response.BinaryWrite((byte[])objReaderPhoto["PictureBinary"]);
break;
}
context.Response.Cache.SetLastModified(DateTime.Now.AddYears(-1));
objReaderPhoto.Close();
}
public bool IsReusable {
get {
return false;
}
}
#endregion
}