|
||||||||||||||
| 1 2 次のページ | ||||||||||||||
| オリジナルのWebサービス+JavaScriptライブラリを作成 | ||||||||||||||
|
これまで、既存のJavaScriptライブラリの構造やその手法を解析してきました。ここでは、実際にオリジナルのWebサービスとJavaScriptライブラリを構築してみます。Webサービスと言っても高度な機能ではなく、リスト5に示すPerlで単に四則演算を行って結果を返すだけのCGIです。 リスト5:calc.cgiサンプルCGI(Webサービス側)
#!/usr/bin/perl -T
このWebサービスの具体的な仕様は、以下のようなURLにリクエストを投げると、「2*3」という計算式クエリを受け取って、「{"status":"ok","result":6}」というJSON形式のテキストデータをレスポンスとして返すというものです。
http://www.example.com/calc.cgi?q=2*3
サンプルですので、サーバー側は簡単なPerlコードにしています。ただし、不正利用を防ぐため、クエリ文字列のチェックは欠かせません(数字と演算記号のみを許可して、任意のPerlコマンドを実行できない制限)。 |
||||||||||||||
| JavaScriptライブラリの実例 | ||||||||||||||
|
さて、いよいよ本題のJavaScriptライブラリに移ります。このWebサービスのインターフェイスとなるJavaScriptライブラリのCalcオブジェクトを作成します。ソースコードはリスト6の通り。 リスト6:calc.jsサンプルJavaScriptライブラリ
// calc.js
jQueryライブラリ同様に、window.Calcをチェックして初期化処理の二重実行を防いでいます。コンストラクタでは特に処理を行いません。オプションは、cgiurl・status・resultの3つのプロパティを用意しています。これらの値は、Calcライブラリを利用するプログラム側から変更可能です。 そして実際にCGIを呼び出して計算を行うのが、expr()メソッドとなります。第1引数に計算式の文字列を受け取ります。jQueryライブラリのgetJSON()メソッドを利用して、Ajax通信を行います。 Webサービスからのレスポンスが届いたら、そのJSON展開結果を引数として、変数funcに定義したコールバック関数が呼び出されます。JSONのresultおよびstatusの値から、HTMLページを書き換える処理を行います。 |
||||||||||||||
|
1 2 次のページ |
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||

