ライブチャートのpCacheを使用する
Example 11
この例は、グラフの描画時間を改善するために、使う方法にpCacheクラスを見せます。
グラフを作成するこの例ではデータは静的であり、これは、多分あなたのアプリケーションの場合でないでしょう:
pDataを自分のものと入れ替えてください。
この図に関連づけられた固有のIDは、Graph1です、
それが、pCacheライブラリがキャッシュされたファイルだけをこのスクリプトに関連づけさせるのに必要です。
キャッシュされたコピーが既に存在しているなら、
pData構造にデータを設定した後に、私たちは、GetFromCache()機能を呼び出しています。
それはユーザのブラウザに送信されているスクリプトが中断され、次のすべての行が実行されないことがあります。
グラフがキャッシュにないならば、チャートは作成されて、描画され、
それから、WriteToCache()機能を使用してキャッシュされます。
この機能を呼ぶことはユーザーが同じチャートを要請する次のとき、利用できるキャッシュを強制します。
このスクリプトを実行すると、直接ユーザーブラウザーにグラフ画像を送ります。
コマンドラインからスクリプトを走らせないでください!
キャッシュを使用する場合、ユーザのブラウザに送られるグラフだけのために、Stroke()を使用します。
(訳注)この画像はサンプルコードのExample11.phpを出力したものです。
Example11.php ソースコード
<?php
/*
Example11 : Using the pCache class
*/
// Standard inclusions
include("pChart/pData.class");
include("pChart/pChart.class");
include("pChart/pCache.class");
// Dataset definition
$DataSet = new pData;
$DataSet->AddPoint(array(1,4,3,2,3,3,2,1,0,7,4,3,2,3,3,5,1,0,7),"Serie1");
$DataSet->AddPoint(array(1,4,2,6,2,3,0,1,5,1,2,4,5,2,1,0,6,4,2),"Serie2");
$DataSet->AddAllSeries();
$DataSet->SetAbsciseLabelSerie();
$DataSet->SetSerieName("January","Serie1");
$DataSet->SetSerieName("February","Serie2");
// Cache definition
$Cache = new pCache();
$Cache->GetFromCache("Graph1",$DataSet->GetData());
// Initialise the graph
$Test = new pChart(700,230);
$Test->setFontProperties("Fonts/tahoma.ttf",8);
$Test->setGraphArea(50,30,585,200);
$Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
$Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
$Test->drawGraphArea(255,255,255,TRUE);
$Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);
$Test->drawGrid(4,TRUE,230,230,230,50);
// Draw the 0 line
$Test->setFontProperties("Fonts/tahoma.ttf",6);
$Test->drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the cubic curve graph
$Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription());
// Finish the graph
$Test->setFontProperties("Fonts/tahoma.ttf",8);
$Test->drawLegend(600,30,$DataSet->GetDataDescription(),255,255,255);
$Test->setFontProperties("Fonts/tahoma.ttf",10);
$Test->drawTitle(50,22,"Example 1",50,50,50,585);
// Render the graph
$Cache->WriteToCache("Graph1",$DataSet->GetData(),$Test);
$Test->Render("example1.png");
?>