連載:Microsoft AJAX Library&JavaScriptプログラミング最終回 MS AJAX Libのユーティリティ機能を活用しよう山田 祥寛(http://www.wings.msn.to/)2008/05/30 |
|
|
[コラム]PHP for Microsoft AJAX Library
本文でも述べたように、Sys.Net.WebRequestオブジェクトはXMLHttpRequestオブジェクトのごく薄いラッパーである。クロスブラウザを意識せずにより直感的なコードを記述できるという意味では、十分に意味のあるオブジェクトではあるが、昨今のリッチなライブラリと比較すると、やや物足りなく感じる面もあるかもしれない。
そのような方は(そして、サーバサイド環境としてPHPを利用しているならば)、「PHP for Microsoft AJAX Library(以降、PHP AJAX Lib)」の導入を検討してみてもよいかもしれない。これはMS AJAX LibをベースとしたPHP環境向けのライブラリで、PHPスクリプトで書かれたクラスに対して、クライアントサイド・スクリプト(JavaScript)から透過的にアクセスするための機能を提供する。「.NET TIPS:[ASP.NET AJAX]ASP.NET AJAXのブリッジ機能」をPHP環境に移植したもの、といい換えてもよいかもしれない。
PHP AJAX Libを利用するには、CodePlexのページから必要なライブラリをダウンロードする必要がある。また、PHP AJAX LibにはMS AJAX Libそのものは含まれていないので、あらかじめ別に入手/配置しておく必要がある*4。
*4 ただし、執筆時点でのPHP AJAX Libは最新のMS AJAX Lib 3.5には対応していないようだ。代わりに、ASP.NET AJAX 1.0を入手し、これに含まれるMS AJAX Lib 1.0を使用する必要がある。 |
PHP AJAX Libを動作させるには、ダウンロードしたアーカイブに含まれるMSAjaxProxyGenerator.php/MSAjaxService.phpを公開フォルダに配置するだけだ。ここでは、先ほどのyahoo.php/yahoo.htmlをPHP AJAX Libを使って書き直してみよう。
[1]サービス・クラスを定義する
PHP AJAX Libを利用するには、まずクライアントサイドに公開するサービス・クラスを定義しておく必要がある。これはASP.NET AJAXにおける.asmxファイルに相当するものだと考えればよいだろう。
| |
リスト8 YahooSearch.php |
サービス・クラスを定義する場合、注意すべきポイントは以下の3点だけだ。
MSAjaxService.phpをインポートすること
MSAjaxServiceクラスを継承した派生クラスを定義すること
ProcessRequestメソッドを呼び出すこと
これらのルールを押さえてさえいれば、後はごく普通のクラス定義と同様に記述できる。ちなみに、ProcessRequestメソッドは、MSAjaxServiceクラスがもともと公開しているメソッドで、クライアントからの要求に応じて、サービス・クラスへのアクセスに必要なプロキシ・クラス(代理クラス)やサービス・メソッドの結果を返すためのものだ。
[2]クライアント・ページを作成する
このサービス・クラスにアクセスするには、次のようなクライアント・ページを用意すればよい。
| |
リスト9 yahooSearch.html |
クライアント・ページを記述するには、まず<script>タグでサービス・クラスにアクセスするためのプロキシ・クラスを呼び出す必要がある( )。プロキシ・クラス呼び出しの構文は「<PHPファイル名>/js」である。
プロキシ・クラスが有効化されてしまえば、後は、これをJavaScriptのコードから呼び出すだけである( )。プロキシ・クラス呼び出しの一般的な構文は以下のとおり。
| |
プロキシ・クラスの一般的な呼び出し構文 |
この構文は、別稿「.NET TIPS:[ASP.NET AJAX]クライアントサイド・スクリプトからXML Webサービスを非同期呼び出しするには?(クライアントサイド編)」で紹介しているものと同等であるので、引数の詳細はこちらも併せて参照いただきたい。
いかがだろうか。ASP.NET AJAXのブリッジ機能を理解している方ならば、PHP AJAX Libを利用することで、ほぼ同じ要領でコードを記述できることがお分かりいただけるはずだ。
以上を理解したら、さっそく作成したサンプル・プログラムを実行してみよう。本文サンプルと同様の結果が得られれば成功である。
INDEX | ||
Microsoft AJAX Library&JavaScriptプログラミング | ||
最終回 MS AJAX Libのユーティリティ機能を活用しよう | ||
1.文字列連結を効率的に行うには?/オブジェクトの内容を確認するには? | ||
2.MS AJAX Libは非ASP.NET環境でも利用可能 | ||
3.[コラム]PHP for Microsoft AJAX Library | ||
「Microsoft AJAX Library&JavaScriptプログラミング」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|