Im creating an image which has some text in it, for every customer, the image contains their name and I use the Graphics.DrawString function to create this on the fly, however I
The simplest solution I can think of would be to just cache the Bitmap object in the HttpContext.Cache after you've created it in the image handler.
private Bitmap GetContactImage(int contactId, HttpContext context)
{
string cacheKey = "ContactImage#" + contactId;
Bitmap bmp = context.Cache[cacheKey];
if (bmp == null)
{
// generate your bmp
context.Cache[cacheKey] = bmp;
}
return bmp;
}
David,
you can use output caching on handler. not declaratively but in code behind. see if you can use following snippet.
TimeSpan refresh = new TimeSpan(0, 0, 15); HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.Add(refresh)); HttpContext.Current.Response.Cache.SetMaxAge(refresh); HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Server); HttpContext.Current.Response.Cache.SetValidUntilExpires(true); //try out with – a simple handler which returns the current time HttpContext.Current.Response.ContentType = "text/plain"; HttpContext.Current.Response.Write("Hello World " + DateTime.Now.ToString("HH:mm:ss"));