Jul 29, 2005
Ajaxを使ったシンプルなチャット
http://la.ma.la/misc/ajaxchat/
サーバーサイドのソースは5行です。
http://la.ma.la/misc/ajaxchat/write.txt
CGIを使うのは書き込みの時だけで、表示はXMLHttpRequestを使ってログファイルを直接読み込みます。更新は差分取得で転送量とサーバー負荷を減らしています。
IEとFirefoxでしか動きません。
Operaはリクエストヘッダのセットが使えないので無理。
仕組み
-HEADリクエストでログファイルのサイズを取得
-ファイル末尾1KBを取得
-レスポンスヘッダから最終更新日と現在のファイルサイズを保存
-If-Modified-SinceとRangeヘッダをセットして定期リロード
とりあえずこれだけです。参加者表示も何もつけてませんが、改造の雛形にでもどうぞ。
Range付きのリクエストは昔試したときに、ヘッダをセットしても全部取得しちゃったりと、どうにもうまくいかなかった記憶があって試してなかったのだけど、なんかうまくいくようになってる様子。
こういうのを使えば負荷を極限まで減らせるわけで、カリカリにチューニングされたデータベースと、単純な追記式のログファイルだと、どちらが負荷が少ないのか気になるところ。
DATA[count++]={name:"名前",comment:"コメント1"}
DATA[count++]={name:"名前",comment:"コメント2",mail:"メール"}
DATA[count++]={name:"名前",comment:"コメント3"}
こんな感じにすれば、追記式で柔軟なデータ構造も保存できるんじゃないか、と考えていて、これだとJSONというかJavaScriptのコードって感じだけど。
----
Rangeリクエストを試したきっかけは、これなんだけど
http://ajaxdb.jp/
これ自体は微妙というかなんというか、Rangeリクエストはブラウザのキャッシュが利かないので、データベースとして使うならあらかじめファイルを分割しておくのが普通だと思う。
例えばこれ。
http://www.oldriver.org/jsmigemo/
pure JavaScriptによるmigemoで、あらかじめ分割しておいた辞書を動的にロードすることで実現しています。やればできるものだなあ、と関心。
----
追記
Operaは8.01からsetRequestHeaderが定義されていますが、実際に送信するヘッダに反映されないようです。8.02でも同上。8.02はなにやらPOSTメソッドの場合には反映される様子。
IEやFirefoxだと、自分で定義したヘッダを追加したり、HTTPで定義されてないメソッド使ったり、基本的に何でも出来るのですがRefererやAccpect-Encodingなんかは書き換えられなかったと思う。(あんま検証してない)
はじめまして。
> Operaはリクエストヘッダのセットが使えないので無理。
私もまだ試してないんですが、Opera8.01のChangeLogに、対応したようなことが書いてあります。
http://www.opera.com/windows/changelogs/801/
> Improvements to XMLHttpRequest support, added support for XMLHttpRequest.setRequestHeader.
あと、Safariでは、HEADでOpenしてもGETが投げられてしまうというバグがある模様です。
>Operaの
追記しました。
丁度最新版も出ていたので検証してみましたが
setRequestHeaderは定義されているだけで
実際には使えないようです。
> 実際には使えない
そうなんですか。まだこれからなんですかね。
お手を煩わせました。
>お手を煩わせました
いや、丁度追記しようとしたところでコメントが付いてました。
使えないなら使えないでseek.cgi作ってやればいい話なんですが、中途半端に定義されてるとバージョンごとに振り分けたりしなくちゃならんので迷惑だなあ、
といった感じですかね。
Ajaxでチャットしてみる
最速インターフェース研究会様の『Ajaxを使ったシンプルなチャット』があまりに早くて格好良かったので、自分でも作ってみました。 流石にログを全部読み込んでクライアントサイドで処理しきる技術力は無かったの...
ご指摘を受けて
Operaで使えないRangeヘッダは廃止しました。1データ1ファイルに分割しました。
http://ajaxdb.jp/
徒然日記/Ajax でチャットを作ってみた
Category Blog:[ プログラミング ] JavaScript(Ajax) でチャットのプログラムを組み立ててみました。 きっかけは、yosha_01さんのディスカス です。 はじめは、このディスカスをいじってみようと思ったのですが、汎用的なものを作ってみたかったので、最速イン...
Link/programing
リッチインターネットアプリケーション ドットネット mono C、X Window その他言語 UML GTKプログラミング Java J2EE Programing リッチインターネットアプリケーション URL: タイトル: コメント: ...
AjaxChat/readme
【名 称】 AjaxChat 【登 録 名】 ajaxchat_[Version].zip 【制作者名】 nao-pon http://hypweb.net/ http://hypweb.net/xoops/modules/puki­wiki/2211.html 原案: 最速インターフェース研究会 http://la.ma.la/blog/diary_200507290­022.htm...
目指せ待機保証&登録ボーナスで20万円!
本日の待機保証情報は、ガールズオンマックスのチャットレディ募集・・・
at 2006/02/13 (Mon) 13:34:00
徒然日記/Ajax でチャットを作ってみた
Category Blog:[ プログラミング ] 動作例 サンプルチャットです。ご自由にお試しください。 '); //--> JavaScript(Ajax) でチャットのプログラムを組み立ててみました。 きっかけは、yosha_01さんのディスカスです。はじめは、このデ...
AjaxChat/readme/AjaxChat readme
【名 称】 AjaxChat 【登 録 名】 ajaxchat_[Version].zip 【制作者名】 nao-pon http://hypweb.net/ http://hypweb.net/xoops/modules/puki­wiki/2211.html 原案: 最速インターフェース研究会 http://la.ma.la/blog/diary_200507290­0...
annuncio lavoro
Blog Records:le tireur isol辿 de psg1 airsoft fusillentComments...
annuncio lavoro
Blog Records:le tireur isol辿 de psg1 airsoft fusillentComments...
Link/programing
リッチインターネットアプリケーション Ajax Ajax プログラミング ドットネット UML 開発環境 Tools Eclipse Webサービス XML/SOAP pygtk 関連ページ Web開発 J2EE Programing リッチインターネットアプリケーション ...
bad car credit loan personal repair
Ajaxを使ったシンプルなチャット
これサイトで使ってもいいですか?
軽さに感動しました!
ぜひサイトで使いたいのですがいいですか?(まだサイトはないんですが・・・)
movie dvd video rental
Ajaxを使ったシンプルなチャット
JavaScript/AJAX
Link URL: タイトル: コメント: デスクトップの機能をネットワークが吸い取る---MicrosoftがGoogleを恐れる理由:IT Pro -- 2005-09-30 (金) 10:39:10 ウェブ・アプリケーションを快適に動かす新手法『AJAX』 -- 2005...
Groupsex, Oral / Blowjob, Anal / Ass, Cumshot
Ajaxを使ったシンプルなチャット
adult free internet tv
Ajaxを使ったシンプルなチャット
cheap phentermine
Combien il co短te, pour d辿velopper un drapeau sur ton blog?
adult channel free tv
Ajaxを使ったシンプルなチャット
軽快さに感動したチャット
最速インターフェース研究会 :: Ajaxを使ったシンプルなチャット
・・・感動した。だいぶ前のものですけど。
既存のHTTPの機能と組み合わせるとここまでシンプルにできるものなのか...。
ホント見習いたいよ。自分のコードの複雑さ見たら泣けてきた...。
writeback message: Ready to post a comment.

