| ||||||||||||||
| 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.jsjQueryライブラリ同様に、window.Calcをチェックして初期化処理の二重実行を防いでいます。コンストラクタでは特に処理を行いません。オプションは、cgiurl・status・resultの3つのプロパティを用意しています。これらの値は、Calcライブラリを利用するプログラム側から変更可能です。 そして実際にCGIを呼び出して計算を行うのが、expr()メソッドとなります。第1引数に計算式の文字列を受け取ります。jQueryライブラリのgetJSON()メソッドを利用して、Ajax通信を行います。 Webサービスからのレスポンスが届いたら、そのJSON展開結果を引数として、変数funcに定義したコールバック関数が呼び出されます。JSONのresultおよびstatusの値から、HTMLページを書き換える処理を行います。 | ||||||||||||||
| 1 2 次のページ | ||||||||||||||
| ||||||||||||||
| ||||||||||||||
| ||||||||||||||

