温度ロガー3

グラフ画像はIHttpHandler実装クラスでビットマップを作成しています。
ashxファイルのメイン部分はこんなカンジです。

public class DayGraphHandler : IHttpHandler
{
..略..
    public void ProcessRequest (HttpContext context)
    {
..略..
        using( Bitmap image = service.GetLogImageByDate( loggerId, date ) )
        using( MemoryStream mem = new MemoryStream() )
        {
            context.Response.ContentType = "image/png";
            image.Save( mem, ImageFormat.Png );
            mem.WriteTo( context.Response.OutputStream );
            context.Response.End();
        }
    }
}

画像はJava Scriptを使用して、5分毎に再取得するようにしています。
imgのsrcを入れ替える場合、同じurlだと再取得が行われないので以下の様な小細工をしています。
また、下記のscriptはaspxファイルに記述していますが、Java Scriptはで囲んで当日以外の表示ではLiteralのVisible=falseにしてscriptが生成されないようにしています。

function updateImage()
{
    imgurl = document.getElementById( "ctl00_ContentPlaceHolder1_Image" ).src;
    
    start = imgurl.lastIndexOf( "_dummy" );
    if ( start != -1 )
    {
        last = imgurl.indexOf( "&", start );

        temp = ""
        if ( last != -1 )
        {
            temp = imgurl.substring( last , imgurl.length )
        }
        imgurl = imgurl.substring( 0, start - 1 ) + temp;
    }

    i = imgurl.indexOf( imgurl, "?" );
    if ( i == -1 )
    {
        imgurl = imgurl + "?"
    }
    else
    {
        imgurl = imgurl + "&"
    }

    dummy = new Date(); 
    imgurl = imgurl + "_dummy=" + dummy.getTime();

    document.getElementById( "ctl00_ContentPlaceHolder1_Image" ).src = imgurl;
}
setInterval( "updateImage()", 300000 );