サーバーサイドの場合、.pngファイルなどの形式でグラフの画像を作り、掲載するページに埋め込むのだが、その画像はスクリプトを使ってデータと軸のラベルを設定し色を決め凡例を作り画像の大きさを定めた上で出力される。
クライアント側で描画する場合は、同様のパラメーターとデータをクライアントに送り、クライアント側で描画する。描画にはJavaScriptがよく使われる。しかし、グラフを掲載するWebページを配信する際に送るのはデータとパラメーターだけではない。描画に使われるJavaScriptとカスケード・スタイル・シートのライブラリーも送る必要がある。両方式には、次表に示す長所と短所がある。
| 長所短所 | サーバーサイド | クライアントサイド |
|---|---|---|
| 長所 |
|
|
| 短所 |
|
|
オープンソースの世界には、一方または両方の方式が可能なクラス・ライブラリーがある。簡単な例としては、サーバーサイド・ライブラリーではlibchart、クライアントサイト・ライブラリーではWebfx Chartingがある。どちらもPHPスクリプトに組み込むことができ、出力とコードの例が公開されている。コーディングに必要な作業量も同程度だろう。以下、両方式の長所短所を比較するため、このライブラリーを使って行ったテストの結果を紹介する。これは、両ライブラリーが生成するグラフの品質を比較するものではない。また、Javaなどを使う方法もあるが、ここでは考慮していない。
両方式の選択で考慮すべき条件は、配信に必要な帯域幅と実処理時間の2点に集約される。一般に、帯域幅の定量化は比較的容易だ。したがって、サーバー管理者は帯域幅に正式な上限を設定する一方、共用サーバー上の処理時間については、過大な負荷を負わせたウェブマスターの利用を制限する権利を保持しつつ、各自の良識に任せている。どちらについてもサーバー管理者を満足させておくことは、ウェブマスターにとってもよいことだ。
