前に作った、xajaxバージョンのGoogle, Yahoo!, Live Searchをマッシュアップしたページを少しいじって、チューンナップしてみました。
JQueryを使ったバージョンより、かなり遅い感じがしたので、どこがネックになってるのかなと思ったんだが、せっかくAjaxを使ってるのに非同期処理になってなくて、逐次検索してるのと変わらない状態だったことに気付いた。 サーバー側のphpで、javascriptの実行をさせてるのだが、1回づつやってたんで遅かった。javascript内でループして連続して検索すれば非同期検索と同じになるってことに気付いた。
、今回書き換えてみた、server側のphpファイルです。検索ボタン押された時に、showcountが呼ばれます。ここで、検索件数のみ表示して残りは searchをループで連続して呼ぶようなjavascriptのコードを書いて連続検索させています。10件程度の検索だとレスポンスが速いんで、体感的にはかなり早くなった感じがします。
Forefoxのアドオン、Firebugで速度を比べてみました。旧バージョンではこんなもんでした。
今回のバージョンでは、このくらいです。
数字で見ると大した事なさそうだけど、体感的には結構違う感じです。
以前のバージョンと同じURLです。
今回のソースコード一式です。HTML_ParserとPEARのCache_Liteが必要です。
[3search_xajax20080220.zip]
続いて、前回作ったJQuery版を改良しています。今回はBaiduの検索も同時に行なうようにしています。
さらに、4カラムにするのが嫌だったんで、Live SearchとBaiduの検索結果をタブで切り替えて表示するようにしました。タブは、JQueryのui.tabsを使っています。
HTMLは以下のような感じ。
JavaScript側はこんな感じです。
URLは前といっしょです。
とりあえず、今回はこんなところです。
とも
はじめまして
検索エンジン+ajaxを勉強させてもらっております。
ajax(JQuery)版は速いですねー
ところで、googleの検索結果の表示順位が、Webで検索した結果と
かなり順位が異なるのですが、何か原因はご存知ですか?
Yahooはいいみたいですね。
例えば「英会話」で検索すると、1位は同じですが、2位以降が
もう違っちゃってます。
Koichi
はじめまして、ともさん。
Google Ajax Web Search APIでの検索結果は、Webで検索したときと違う事があるようです。
原因は、当初は Google.comとGoogle.co.jpの違いかなと思ってたんですが、「英会話」での検索結果をみると、それとも違ってたので、別の原因のようです。
とりあえず、今のところは、わかってませんm(__)m。