前回やった、Google,Yahoo!,Live Searchの同時検索をAjaxを使って実装しなおしてみました。
今回は特にUIに凝る気もないので、PHPで簡単にAjaxを書ける、xajaxを使ってみました。
xajaxを使うにあたって、以下のサイトを参考にしています。
- PHP+xajaxでお気軽Ajaxアプリケーション作成(1) ~インストール/Hello World 【ver 0.5対応版】 : 地方で活動するweb制作者の日々を綴るblog
- 【ハウツー】PHPでAjax! JavaScript不要のxajax (1) PHP Ajaxクラスライブラリ - xajax | エンタープライズ | マイコミジャーナル
その他、ググるといろいろ出てきます。
まず、検索クラスのベースクラス(WebSearch.php)に多少の変更を加えてます。キャッシュのディレクトリをコンストラクタで渡すようにしたりといった対応です。
前回の、3search.class.phpに相当するものが以下のコード。xajaxで使用するにあたってHTMLの生成部分をstatic化したりといった対応をしています。
実際に、xajaxを使ったコードです。一応、MVCっぽい耕造になっています。xajaxに含まれているサンプルと同じ名前の付け方になってますが、
コントローラーに相当するのが、xxxx.common.phpです。
search.common.php
ビジネスロジック部分に相当する部分です。サンプルでいうところの、xxxx.server.phpになります。
search.server.php
そして、ビュー部分です。これが実際に、ブラウザから直接アクセスするファイルになります。
search.php
ソースを見てもらえばわかるとおり、JavaScriptでの実装部分がかなり少なくて済みます。このくらいのレベルなら、簡単にAjaxの実装が出来てしまいます。
なお、xajaxは、ソースをみてもらうとわかりますが、二つ上のディレクトリ階層に置いているという想定です。
ソース一式は以下から取得できます。今回も予告なく、消したり内容を改変する可能性があります。
実際に動作は以下で確認できます。
http://labs.s-koichi.info/mashup/3search/search.php
で、作ってみて思ったが、それほどAjaxを使った効果が出てないかなぁという印象がある。最初の10件はそこそこ早くはでるんだけれど、それでもうちの環境でも1~2秒はかかります。
次回は、URLを入力して、それぞれの検索エンジンで何位になってるのかを表示させるところまでを実装しようと思っています。


マッシュアップページを作ってみる その5