TOP書籍連動> JPSpanサーバ
JPSpanを使ってAJAXをしよう!
JPSpanを使ってAJAXをしよう!

第2回:サーバ用のスクリプトの例

著者:Joshua Eichorn   2005/11/9
1   2  3  次のページ
JPSpanサーバ

   JPSpanを使ったフローでは、まずJPSpanのサーバ側を設計します。サーバ側のページでは、プロキシオブジェクトを作成するJavaScriptコードを生成し、JavaScriptとPHPクラスのマッピングを行い、シリアライズされたデータを送信します。

   JPSpanはAJAX部分のコードを提供してくれますが、Webプログラミングの一般的なロジックは自分で実装する必要があり、認証機構やセッション管理などがその例です。サーバは通常のPHPページなので、クッキーやHTTP認証などは問題なく動作します。

   セッションに関しても、基本的には従来通りの方法で問題ありません。ただしサーバと通信する量が増えるため、セッションがパフォーマンス上のボトルネックになる可能性があります。またJavaScriptオブジェクトが毎回再作成されるため、最後の呼び出しでセットした値がPHP側では存在しないという事態が起こる可能性があることに注意が必要です。

   サーバ側のコードはとても簡単です。容易に拡張ができるよう設計されているため、ログを実装したりやクライアントコードをキャッシュする場合でも難なく記述できるでしょう。呼び出しマッピングはJPSpan_Server_PostOfficeにて処理されており、PathInfo形式(index.php/class/method)が使用されます。そのため、サーバとしてApache以外を使っている場合に問題が起こる可能性があります。ですので、この方法でURLがリクエストされた場合の処理を、サーバのマニュアルなどを見て確認しておきましょう。

   リスト1にサーバ用のスクリプトの例を掲載します。このサーバは2種類のタイミングで使用されます。1つはJavaScriptクライアントを生成する時、もう1つはクライアントからPHPメソッドを呼び出す時です。JavaScriptクライアントを生成する際には、キャッシュが簡単なのでパフォーマンスの向上を検討するとよいでしょう。

1 <?php
2 ⁄⁄ JPSPAN ライブラリを読み込む
3 require_once '..⁄jpspan⁄JPSpan.php';
4
5 ⁄⁄ PostOffice サーバを読み込む
6 require_once JPSPAN . 'Server⁄PostOffice.php';
7
8 ⁄⁄ サンプルで使うExample クラスを読み込む
9 require_once 'example.class.php';
10
11 ⁄⁄ PostOffice サーバを作成する
12 $S = & new JPSpan_Server_PostOffice();
13
14 ⁄⁄ PostOffice サーバに作成したプロキシクラスを割り当てる
15 $S->addHandler(new Example());
16
17 ⁄⁄ URL に?client とある場合は、JavaScript クライアントを生成する
18 ⁄⁄ それ以外の場合は、JavaScript からのサーバとして振る舞う
19 if (isset($_SERVER['QUERY_STRING']) &&
20           strcasecmp($_SERVER['QUERY_STRING'], 'client')==0) {
21     ⁄⁄ JavaScript クライアントを出力する
22     $S->displayClient();
23
24 } else {
25     ⁄⁄ PHP のエラーや警告を、JavaScript に出力する
26     require_once JPSPAN . 'ErrorHandler.php';
27
28     ⁄⁄ リクエストの処理を行う
29     $S->serve();
30 }
31 ?>
リスト1:サーバ用のスクリプトの例

1   2  3  次のページ

PHPプログラマーズマガジン 書籍紹介
PHPプログラマーズマガジン

PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP:Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。

発行:アシアル株式会社  価格:1,029円

 ご購入はコチラ
http://www.asial.co.jp/magazine/
Joshua Eichorn
著者プロフィール
Joshua Eichorn
Joshua Eichornは、PHPを使ったWebサイトを7年間制作してきました。彼は、非常に有名なPHPのドキュメーションツールであるphpDocumentorの制作者です。また彼は、アリゾナ州立大学のScience in Computer InformationSystems学部の学士号をとっています。
彼はUversa社のシニア設計者として、AJAXをUversa社のアプリケーションに追加する作業を行っています。現在、アリゾナ州フェニックスに住んでいます。


INDEX
第2回:サーバ用のスクリプトの例
JPSpanサーバ
  画面に出力する例
  スクロールするテーブル