2009-07-29 2 views
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 
} 

ответ

2

Я не думаю, что вы можете кэшировать на стороне клиента, если он не имеет URL «IMG/someimage.gif», как насчет кэширования результатов в кэше HttpContext? Небольшая помощь по Cache

Смежные вопросы