Amazon最速検索ライブラリ - awsearch.js
http://rails2u.com/misc/awsearch/
http://rails2u.com/misc/awsearch/awsearch_demo.html
みなさんご存じのAmazon最速検索はアイディア、技術的に大変面白い(特にXSLTでJavaScriptコードをジェネレートするところと、コールバック処理の呼び出し)のですが、ソースが密結合しすぎていて、自分で利用する場合はいろいろ大変そうなので、検索部分の処理を切り出してライブラリ化してみました。
JavaScriptを前面に押し出したAmazon検索サイトや、サーバサイドが重すぎて検索が遅いと悩んでる人は使い道があるかもしれません。Safariとかじゃ動かないけど。Safari 2.0.2(416.13)で動いたという話です。
ライブラリのインターフェイスはprototype.jsのAjax関連と同じ感じにしたので、prototype.jsに慣れてる人は親しみ深いと思います。
var dev_token = 'あなたのdeveloper token'; var xslt = 'http://example.com/awsearch.xsl'; var aws = new AWSearch(dev_token, xslt, { mode: 'music-jp', onSuccess: function(result){ with(result.items[0]){ alert(title + ' - ' + creator.join(',')); } } }); aws.search('Beatles');
こんな感じでシンプルに使うことができます。onCreateとonSuccessに関数を入れることによって、検索直前、検索完了後にコールバック処理が行えます。
JavaScriptのライブラリコードは結構別物ですが、技術的にコアな部分はXSLTにあって、その部分はほとんど弄ってないのでたいしたことしてないです。それにしてもXSLTでJavaScriptコード作り出して呼び出すとか、普通思いつかないよ!とかオリジナルのソース読んでて驚きでした。