«前の日記(2006年07月01日) 最新 次の日記(2006年07月03日)» 編集

ema log


2006年07月02日 [長年日記]

_ [JavaScript][Ajax][Web Service][Comet][Programming] Comet (HTTP Streaming)

気になったので調べてみた。Ajax と Comet の比較は以下の通り。

AjaxComet
pullpush
方法XMLHttpRequestIFrame?
用途画面遷移を減らして応答性の向上
データが欲しい/データの送信
Chat などリアルタイム性

Comet はブラウザが結果すべてが返ってきていなくても、レンダリングを行うことを利用したハックです。XMLHttpRequest だと、IE でコネクションが閉じてしまったことを検出できないので、IFrame が良いとされていました。たぶん、タイムアウトしたらコネクション切れますよね。

例えば、チャットを書く場合、送信は Ajax で、受信は Comet で書くことになるイメージでしょうか。

Portable Comet? It's the IFrame, Stupid! を参考に同じようなデモを書いてみました。サーバの ruby スクリプトを下にのせます。 サーバでは flush することがポイントになります。

なんか、yield っぽいですね。flush した時点で、データがブラウザにわたるので、それを即座に解釈させてクライアントが更新。極限まで突き詰めれば、サーバ側から全部スクリプト生成もできますね。

コネクション切断の検出は、iframe の onload イベントが発生したら、コネクションが切れたってことになるのかな?(さっき思いついた推測)

バッドノウハウな気がしないでも無いんですが、考えついた人賢いなぁ。Gmail + Gtalk なんかで使われている手法に、名前を付けたということらしいです。また一つ、standalone なアプリケーションで無くてはならない理由が減ったなぁ。

問題になりそうなのは、上手くやらないとユーザ数の CGI プロセスが動くことかなぁ。もうちょっと、調べてみないと。

差分リクエストは、昔XMLHTTPでrange付きリクエストが出来ないかと試行錯誤したことがあるのですが、どうにも無理みたいです。

CGIを使ってログファイルを部分的に切り出してブラウザに送ってやる必要があります。

サーバープッシュとクライアントプルの組み合わせで、ウェブベースでも高レスポンス、低通信量のチャットを作るというのがコンセプトなのですが、

レンタルサーバー上でサーバープッシュをやるとコネクション数を多く使ってしまうので無効にしています。

ブラウザ上で完全リアルタイムに更新するチャットを作るのは、それほど難しいことではありません。

[最速インターフェース研究会 :: JavaScriptで差分リロードなチャットより引用]

ってのは、まさしくこれだったのでしょうか。

深く検討はしてないけど、多くの場合 XMLHttpRequest でやる方が有利なことが多そうな気がするなぁ。Range リクエストが Opera 以外は使えるみたいだし(Opera 9 はどうなんだろう)。

References
Portable Comet? It's the IFrame, Stupid!
HTTP Streaming
ETech2006: After AJAX: Low-latency Data to (and from) the Browser
blog.8-p.info: Shibuya.js Technical Talk #2
Continuing Intermittent Incoherency » Comet Talk at ETech
最速インターフェース研究会 :: JavaScriptで差分リロードなチャット
最速インターフェース研究会 :: Ajaxを使ったシンプルなチャット

_ [最近] ミューズリー

ミューズリーを買ってみました。本場ではないけどイギリス製です。扱いがぞんざいだったので、若干砕けちゃってます。

ちなみに、1キロで 900 円。これは、500g なので、500 円。初心者なので、2種類を買ってみた。種類が多すぎて、どれが良いものやら。全部で 10 数種類はあったと思う。

やっぱり、蜂蜜も買えばよかったかなぁ。食べてみて決めよう。

ところで、こんなものが買えるスーパーといえば、やはり成城石井。若干おっしゃれーなスーパーで、お客の大半が女性客。世界各地の品物を扱っていて、でも、そんなには高くないお店です。尤も、近辺では梅田にしか無いんですが。

チーズ、ソーセージ類、香味料、お菓子、その他諸々が豊富で、中にいて楽しいけど、若干居づらくもある空間です。

今日のクッパは 3 / 10。相変わらずだめぽ。

本日のツッコミ(全3件) [ツッコミを入れる]
_ TrackBack (2007年10月16日 03:26)

http://freewebs.com/phentermine44<br>Phentermine low price cheap phentermine online.<br>Cheap phentermine online.<br>Buy prozac phentermine online free shipping cheap.

_ TrackBack (2007年10月16日 09:59)

http://bizzyblogz.com/tramadolonline11<br>Snorting tramadol.<br>Tramadol.<br>Tramadol.

_ TrackBack (2007年10月18日 05:54)

http://blognow.com.au/viagra<br>Get a free viagra sample on line.<br>Free viagra.<br>Free sample viagra.