
連載:AjaxとPHPでリッチクライアント(1)
Ajaxを使ったamazon検索をPHPで作ろう
上鍵 忠志
日本PHPユーザ会
2005/10/4
|
Ajaxは今年非常にホットな話題の技術である。 |
| 注目のAjax |
- - PR -
この辺りの詳しい内容はAjax推進委員会による「古くて新しいAjaxの真実を見極める」を参考にするといいだろう。
| PHPとAjaxの関係 |
PHPはサーバサイド技術、前述のとおりAjaxで用いられるJavaScriptはクライアントサイド技術である。通常の処理ではJavaScriptに処理が推移するとサーバ側では次のページに推移するまで何もできなかった。
例外的に「0ピクセルフレーム」と呼ばれる、いわば「見えないフレーム」を用いて隠しフレームを使ってサーバ間通信をし、実際に使用するフレームの表示に反映するという「なんちゃってサーバ/クライアント間同期」などの手法も古くからあったが、フレーム故の問題(URLの問題など)も少なくなかった。
![]() |
| 図1 0ピクセルフレームの概要 |
AjaxはXMLHttpRequestというものを用いてサーバと非同期通信を行う。そのため、無駄なフレームも必要なくリロードレスなコンテンツを作成することができる。
ただしAjaxに問題点がないわけではない。Ajaxの問題は以下のような点が挙げられるだろう。
| ・XMLHttpRequestはブラウザ依存である(Internet ExplorerとMozillaしか対応していない場合が多い) ・DHTMLを使わなければ画面内容を変更できないので若干テクニカル ・XMLでのデータ渡しになるので処理が比較的重い |
しかし上記の問題はXMLHttpRequestやDHTML描画をラッピングするライブラリやフレームワーク、などの登場で徐々に解決しつつある問題でもある。
| Ajaxを使ったウェブアプリケーションの例 |
Ajaxを使用したウェブアプリケーションはすでにいくつかあり、@ITでも紹介されているが、もう1度、下記に挙げておこう。
|
●gmail おそらくAjaxのはしりになるウェブアプリケーションで、Googleが開発したものだ。いままではクリックするたびに画面の切り替えがあったウェブメールがほぼそのままの状態でどんどん内容が切り替わっていく斬新なものだった。 |
|
●Google マップ これもAjaxの可能性を示したウェブアプリケーションの1つであろう。gmailと同じくGoogleが開発したものだ。 |
|
●フォト蔵 いわゆる誤解を恐れずにいうと「日本のFlickr」である。このウェブアプリケーションでは通常画像のアップロードにはファイル選択を行うが、ファイル選択をするだけでプレビューが表示されるようになっている。この技術にはAjaxも併用されている。 |
|
●ajax ssh http://ajaxssh.bz2.jp/ 若干強引だがAjaxを用いてssh環境を構築する。HTTPは通常1リクエストごとに処理を終了するが、sshはsshとしてセッションを切断するまで永続的に接続しているため、その問題解決などにテクニックが使われている。 |
| Ajaxを用いたアプリケーションの可能性 |
|
●グループウェア |
|
●ウェブメール |
|
●ウェブチャット・掲示板 |
|
●ゲーム |
そのほかアイデア次第でいろいろ使い道はあるだろう。
| Ajaxを扱うためのPHPライブラリたち |
現在、インターネット上で公開されているPHPで用いることができるAjaxライブラリを紹介したい。筆者自身、このライブラリの便利さには驚かされたので、まだ触っていなかったという場合、この機会に確認されてはいかがだろうか。
|
●SAJAX http://www.modernmethod.com/sajax/ |
|
●AjaxAC http://ajax.zervaas.com.au/ |
|
●PEAR::HTML_Ajax http://pear.php.net/package/HTML_AJAX/ |
|
●php-jsons http://www.aurore.net/projects/php-json/ |
|
●NAJAX http://najax.sourceforge.net/dev/ |
|
●Echo2 http://www.nextapp.com/products/echo2/ |
| 1/3 |
|
INDEX |
||
| Ajaxを使ったamazon検索をPHPで作ろう | ||
| Page1<AjaxとPHPの関係> PHPとAjaxの関係/Ajaxを使ったウェブアプリケーションの例/Ajaxを用いたアプリケーションの可能性/Ajaxを扱うためのPHPライブラリたち |
||
| Page2<AjaxACを使う>
サンプルを使用し、改造してみる/CountryRegionCityJax/GoogleSuggestCloneJax |
||
| Page3<Amazon商品検索フォームにGoogleSuggestCloneJaxを改造する>
AmazonSuggestCloneJax |
||
ホワイトペーパー(TechTargetジャパン)
- いまさら聞けないTwitter超入門−@IT記事も対応なう (2010/2/4)
Twitterは最近話題のつぶやきツール。基本的な使い方から、iPhoneアプリの使い方、RTの解説、4人のご意見番の活用例や感想まで - HTML5は開発者側の都合。ユーザーには関係ない (2010/2/2)
3つのレンダリングエンジンを載せている“国産”ブラウザベンダは、HTML5やWeb/ブラウザの進化について何を語るのか - テキスト・フォント周りをキレイに見せるCSS、13選! (2010/1/29)
無数にあるCSSのプロパティを大まかに分類し、1つずつ紹介していく本連載。初回は、テキスト・フォント周りについて - OpenGL ESが大変な3Dアプリ開発を楽にするUnity (2010/1/27)
iPhoneゲーム開発に必須のOpenGL ES。そのコーディングに手こずっている方に有用なツールを紹介し簡単なサンプルを作成します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |







