ComponentOne Studio TrueChart for ASP.NET (C1WebChart2D) ヘルプ
チュートリアル6 - キャッシュベースの転送メソッドとアプリケーションごとのイメージ ID と共に HTTPHandler を使う
C1WebChart チュートリアル > HTTPHandler ベースの描画チュートリアル > チュートリアル6 - キャッシュベースの転送メソッドとアプリケーションごとのイメージ ID と共に HTTPHandler を使う

To use HttpHandler with a Cache-based transfer method and a per application image ID to transfer C1WebChart to the client, complete the following steps:

  1. C1WebChart をフォームに配置します。「確認」ダイアログボックスが表示されます。
  2. はい」をクリックして web.config ファイルに HttpHandler を追加します。この設定により、アプリケーションで C1WebChart のビルトイン HttpHandler 機能が利用可能になります。
    Web.config ファイルには以下のエントリが追加されます。
    <configuration>  
             <system.web>  
                 <httpHandlers>  
                     <add verb="*" path="c1chartimage.aspx"  
                     type="C1.Web.C1WebChart.ImageHttpHandler,C1.Web.C1WebChart.4"/>  
                 </httpHandlers>  
             </system.web>  
      <configuration>
    
  3. 必要に応じて、データと外観要素を設定します。

  4. C1WebChart のプロパティを次のように設定します。

    • ImageRenderMethod プロパティを ImageRenderMethod.HttpHandler に設定します。
    • ImageTransferMethodプロパティを ImageTransferMethod.Cache に設定します。
    • ImageIDGeneration プロパティを ImageIdGeneration.Application に設定します。
    • ImageUri プロパティが ""(空白)であることを確認します。
    • Page.Id が空であることを確認します。

プログラムを実行し、次のことに注意してください:

作成されたイメージタグは、次のようになるはずです。

<img id=chart2d1 src='c1WebChartimage.aspx CacheID=

WebForm1.aspx_C1WebChart1_9F0D3D0E' />

"CacheID" 属性は、以下のようなキャッシュ変数へのアクセスを提供します。

WebForm1.aspx_C1WebChart1_9F0D3D0E_ImageBytes(実際のイメージを含む)
WebForm1.aspx_C1WebChart1_9F0D3D0E_Hash (ハッシュコードとイメージの種類を含む)

この場合、_Hash 変数は次の文字列を含みます。
”c1c_104_f1_c69d1f91.png”

この文字列はグラフプロパティの内容から一意に生成されます。C1WebChart 自体が描画するたびに、現在のハッシュをアプリケーションキャッシュ内の既存のハッシュと照合します。変更がなければ、グラフイメージを作成し直す必要はありません。キャッシュは複数のクライアントが使用できるため、単一のイメージを複数のクライアントで共有することもできます。この動作を C1WebChart の内部 HTTPHandler に組み込むと、サーバー負荷の軽減に役立ちます。

キャッシュ変数名は、描画ごとまたはクライアントごとに変わることはなく、変数の値のみが変わります。したがって、描画するたびにキャッシュ変数を削除する必要はありません。

キャッシュ変数は、C1WebChart の内部 HTTPHandler によって絶対的な有効期限、相対的な有効期限、および優先順位を使って挿入されます。これによってスケジュールに基づいて、またはリソースのニーズに応じて削除できます。