目次 前へ 次へ

5.3 クライアントサイド イメージマップを使用する

JpGraph は、クライアント サイド イメージマップ (CSIM) 機能を備えています。この場合、先述のキャッシュ機能とは少し異なり、画像とイメージマップの両方をキャッシュしておく必要があります。また、HTML 側の加工も行う必要があります。 CSIM HTML パラダイム方法で変更の必要があります。標準のキャッシュ機能との2つの大きな違いは、以下の 2 つです。

  1. 過去にキャッシュされた画像が設定したキャッシュディレクトリに保存されません。詳しくは以下の記述を参考にしてください。
  2. キャッシュを確認するには、CheckCSIMCache() メソッドを使用する必要があります。

単純な CSIM 画像の場合、パフォーマンス効率は約50%程度です。しかし、データベースの呼び出しや他の複雑な処理を回避できるため、キャッシュが使用可能できる場合には 1000% ほどの速度向上につながります。

CSIM の詳細については、クライアント サイド イメージマップを使う を参照してください。

CSIM を使用する場合、スクリプトは通常使用する Graph::Stroke() メソッドの代わりに、Graph::StrokeCSIM() メソッドを使用します。

CSIM でキャッシュ機能を使用する場合、Graph::CheckCSIMCache() メソッドを呼び出す必要があります。.通常のキャッシュの使用方法と同様に、任意の タイムアウト値とキャッシュ画像の名前を指定します。タイムアウトの標準値は、他で指定されていなければ 60 分となります。

キャッシュ画像の名前には.もう少し説明が必要です。ここには、関係のある名前を指定します。例えば、myimage や firstpage/image3 などです。JpGraph のインストール状態にもよりますが、これは最終的に CSIMCACHE_DIR で定義されたディレクトリで終了します。これは通常のウェブサーバーがアクセス可能なディレクトリでなくてはなりません。標準設定では、csimcache ディレクトリが画像生成のスクリプトと同じディレクトリに作成されます。

スクリプトが実行されるディレクトリは、 PHPが書き込み可能である必要があります。これを解決する最善の方法は、PHPが書き込み可能なディレクトリの数を最小に抑え、標準のキャッシュディレクトリを再利用することです。しかしこの方法の場合、HTTP サーバーがドキュメント ルートにアクセス可できるよう、アドミニストレーターがキャッシュディレクトリを設定する必要があります。

CheckCSIMCache() メソッドは、存在するキャッシュのバージョンを確認し、もし見つかればそれを返してスクリプトの実行を停止します。キャッシュが見つかった場合は、スクリプトの実行をできるだけ抑えて画像を作成します。そのため、この関数は Graph() オブジェクトの作成の直後、そして処理の重い作業の前に呼び出します。

CSIM とキャッシュを使用する一般的なスクリプトの構造は、以下のようになります。

$graph = new Graph(400,300);

// キャッシュをチェックする、10分間のタイムアウト
$graph->CheckCSIMCache("image1",10);

// !! キャッシュが存在する場合は、ここで終了 !!

//
// ... データベースの呼び出しなどで、画像を生成
//

$graph->StrokeCSIM();

キャッシュを使用しない場合は、StrokeCSIM() 関数の引数には何も指定する必要がないことに注意してください。

注意: CSIM キャッシュ機能では、キャッシュ ディレクトリに 2 種類のファイルを保存します。それぞれ、画像と HTML ファイルのイメージ マップに相当するファイルです。


目次 前へ 次へ