アーキテクチャの比較
ここでは「WebブラウザがCGIとデータをやりとりするようなゲーム」を作る上で、Ajaxを使わない場合と使った場合の違いについて説明します。
ただのCGIの場合
ただのCGIでゲームを作った場合、以下のようなアーキテクチャになります。
- クライアントのWebブラウザは、サーバに対しゲームデータを要求。
- サーバのCGIは、データの抽出や更新を行う。
- サーバのCGIは、抽出したデータを使ってゲームの処理を行う。
- サーバのCGIは、ゲームデータに応じて変化したWebページを返信し、Webブラウザにゲーム画面を表示。
(1〜4を繰り返す)
Ajaxを使っていないため、プロセス4の通り、Webブラウザはページを再読み込みしなければならない上に、ページ全体を再描画することになります。
Ajaxを使った場合
Ajaxを使ったCGIでゲームを作った場合、以下のようなアーキテクチャになります。
- クライアントのWebブラウザは、サーバに対しWebページを要求。
- サーバは、ブラウザへWebページを返信し、ブラウザにゲーム画面を表示。
- クライアントのWebブラウザは、JavaScriptのXML HTTPリクエストにより、サーバに対しゲームデータを要求。
- サーバのCGIは、データの抽出や更新を行う。
- サーバのCGIは、抽出したデータを使ってゲームの処理を行う。
- サーバのCGIは、ゲームデータを適切なフォーマットに変換したものを返信し、Webブラウザにゲーム画面を表示。
(3〜6を繰り返す)
Ajaxを使っているため、Webブラウザはページを再読み込みすることもなく、ページの一部分だけを再描画するだけで済みます。