ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Ajax - Async JavaScript w/ XMLコミュのSynchronous Ajax

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Synchronous Ajax という考え方を作ってみました。

一言で表現すると「スロットリングつき Ajax」ですが、Ajax での複数の非同期通信を外側から俯瞰して制御しよう、という考え方です。
# スロットリングに限る必要はないのですが、一番わかりやすいので。

デモプログラムを作ってみましたので、ご紹介です。コメントいただけると、とっても嬉しいです。 :)
http://mixi.jp/view_diary.pl?id=18112318&owner_id=43564
http://mixi.jp/view_diary.pl?id=18250779&owner_id=43564

http://www.pp.iij4u.or.jp/~kwi/sajax.html

コメント(5)

静的XMLを読んでいる場合は問題ないですが、
動的生成XMLを読んでいる場合には、Google社みたいに無尽蔵の設備を持っていない限り、確かに制御が必要ですよね。

同時に100人がアクセスしたような状況もスグ作れてしまう。

略称が sajax だとカブってしまうので、略称は synajax とか。
http://www.modernmethod.com/sajax/

シナジーっぽい。
なるほど!sajax という名前を使っているところが既にあったのですね。知りませんでした。情報ありがとうございます!調べてみます。
# 最初に適当に命名してしまいました。

そうですね、では、syncajax と略しましょうか…。あるいは、Sync.Ajax という名前空間で JavaScript を書くとわかりやすかったりしますでしょうか。
# Syn.Ajax だとネットワーク屋さん風味になってしまうので。:p

次に書くときは Sync.Ajax にしてみます。
インクリメンタルサーチを作って、EclipseとかのデバッグモニタでSQLの発行状況を見てると、自分一人の操作でもブルーになってきますね。

今までとはありえないぐらい負荷がかかるので、こりゃ管理画面にしか使えないなぁと思ってました。

確かに、こういうのすごく重要だと思います。

ちなみに参考までにお聞きしたいのですが、この制御の考え方は、クライアントからの連続的な通信状況によって自律でタイミング制御されるようなものなのでしょうか?それともサーバで同時アクセス数を計測して制御されるようなものなのでしょうか?

いずれにせよ、サーバレスポンス低下時に、AJaxな通信が成り立たなくなったときに如何にアプリケーションの機能を続行させるか?というデザインも必要なんだなと考えさせられました。(AJaxがその画面にとっての付加価値であるなら、それを停止するための制御も必要かな・・・と)
クライアントとサーバの両方で制御するのが望ましいと思います。とはいうものの、Ajax 自体はユーザの体感を良くするために使うことが多いと思いますので、まずは、クライアントサイドで、どの部分をどのぐらいの重み付けで制御するのが許容できるか調整することになると思います。

例のスロットリングはクライアントサイドの実装です。

SQL の発行などですとなかなか難しいのですが、ディレクトリ構成にマップ可能なものであれば、キャッシュ(HTTPプロクシなど)を上手く活用すると、驚くほど高速化されます。REST な考え方ですね。:-)
トピと直接関係ないネタですみません。

>> キャッシュを上手く活用すると

静的XMLだからブラウザのキャッシュが効いているかとばかり思っていましたが、サーバログを見てみると IE では 200 OK ばかりが入っていました。(デフォルトでブラウザのキャッシュが効くのは Opera のみ)
いちいち If-Modified-Since とか JavaScript で制御しないといけないんでしょうか。皆さんどうしてるのかな?
http://kawa.at.webry.info/200505/article_8.html

ajax の全ての HTTP 通信をスロットリングする必要はありませんが、SQL発行などのサーバ側負荷がある処理については、そういったクライアント側の制御が必要でしょうね。(ajaxでインタラクティブ処理を続けて実行していると、サーバ側で演算しても実際には画面上には使われないことも多くなる)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Ajax - Async JavaScript w/ XML 更新情報

Ajax - Async JavaScript w/ XMLのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング