Ajaxを使うときの設計 その2
使い方間違えると自爆しますよと。
個人的にはAutoCompleteってどうなのかなと。
使える前提をちゃんと示さないとなあ。
そーいう意味ではsuggest.jsはいいね。
ちゃんと書いてあるもんね。
で個人的自爆しそうなパターンは
DBアクセスを伴う場合
こいつは危険な可能性が。
物にもよるけどバンバンDBに問い合わせが発生するとやっぱり辛い。
とはいえAutoCompleteで商品名をCompleteできるとやはり喜ばれるのも事実。
対策:
- 問い合わされるデータはキャッシュ化
- 問い合わされるデータを限定
- 問い合わせに行く回数を減らす
まー当たり前だけど。
AOPが使えるDIを使っているケースであればAOPで対象のメソッドに対しInterceptorをかまし、Interceptorでmemcachedにあるデータを返すようにするとかね。
(これは多分実装しそう)
問い合わせるデータ
割と思い込み的なことだけど。
1回の通信で1データを返さないといけない理由はない。
多分
new Ajax.Updater('blk','mess.html',{method: 'get'});
これさえ覚えておけばいいやという人が多いのではないだろうか。
本当はあるAというデータを取りに行くときに他も先読みしおくなど複数データを返すことができる。
(私がJSFとDojoで実験をしているようなこと)
またvalidateなどでエラーチェックをし、複数のメッセージを出したり、エフェクトなどもできる。
一回の通信で効率よくデータ(制御)を取るのがAjax(だと私は思っている。)
だからといってデータ量が大きすぎても問題だけど。
対策:
最後のAjaxで返すデータのフォーマットを見直すは私がよくブログで書いてる事だけどjavascriptを返すといろんなことができるよって事。
XMLで返してもいいけどどーせjavascriptでなんか行うわけだしさ。
Cometが出てくればもっといろんなことができるんだけどね
うくく。