Ajax , ECS4.0 , Javascript

2005年12月16日

ECS4.0のXML受信について

ええもん屋.com広告サービス「AmonyaAds」はAjax&ECS4.0と謳っていますが、実はそのAjaxの通信からXMLのパース部分については、JKL.ParseXMLを使わせてもらっています。
すばらしいライブラリがあるのに、わざわざ自分で書き直す必要はないですからね(言い訳?)。

このライブラリ(JKL.ParseXML)を使うと指定したURLからXMLを取得して、JSON配列に置き換えることができます(同期通信・非同期通信両方に対応)。そのJSON配列をJavascriptで加工すればいいわけです。ECS4.0だけでなく、RSSを取り込んだり色々できます。

ただ、一つ注意点。Ajaxはセキュリティ上、同一サーバーでしか通信を行えないという事です。つまり、直接AmazonからXMLデータを取得することは不可能です。それを回避する為に、同一サーバーからPHPやPerl等のCGIで仲介してやる必要があります。
※ここでいう同一サーバーとは、Javascriptファイル(.js)を置いているサーバーではなく、htmlファイル(あるいはCGI)を置いているサーバーのことです。

また、CGI等サーバー側で直接XMLを加工せずAjaxを利用する利点

1.画面遷移せずにデータを更新できる。
2.手軽に行える。
3.クライアントの資源を有効利用することで、サーバーの負荷を減らす。

1つ目は、Ajaxの最大の利点でもある画面遷移なし(画面の移動なし)でデータを更新できる点です。つまり何かを検索する際、検索ボタンを押すたびにページが切り替わる従来のHPとは一線を置き、同一画面内で検索を行うことができるようになります。極めれば、Google Mapsのようなサービスまで提供できるかもしれませんね。

2つ目はCGIをゴリゴリ書く場合とは異なり、Ajaxで書いた場合殆どJavascriptのみの知識さえあれば記述することができます(通信のみCGIの力を借りる必要がありますが・・・)。また、テストが簡単に行えるという利点もあります。サーバー(PC側のローカルサーバーを含む)に置かなくてもPCでHTMLと同じフォルダにXMLを入れればクライアントだけでもデータのテストできたりします(意外に便利)。

3つ目は、”サーバー側ではXMLを受信してクライアントに丸投げする”という動作しかしないという事です。ファイル転送しか行わないのでCGIで(毎回)加工した場合と比較すると負荷はほとんどありません。
※上手く作ればCGIの方が負荷が掛からないこともあります。

とはいえ、ECS4.0には「1秒1回以上アクセスしない」、「一日最大10,000クエリまで」等の制限事項があるわけで、毎回Amazonにアクセスしたらすぐ制限オーバーしてしまいます。なので、現実的にはCGI側である程度通信制御する必要がありますけどね。


投稿者 シズマル : 2005年12月16日 20:49

トラックバック

このエントリーのトラックバックURL:
http://mt.amonya.com/mt-tb.cgi/2

※トラックバックのリンク確認後に掲載させて頂きます。
(当エントリー又は当サイトへのリンクがない場合は掲載しません)

コメント
コメントしてください




保存しますか?