タグ

ブックマーク / la.ma.la (2)

  • 最速インターフェース研究会 :: 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付きのリクエストは

    inurota
    inurota 2008/12/25
    排他処理どうするか。
  • 最速インターフェース研究会 :: Function.prototypeを拡張して遅延実行を実現する

    JavaScriptにおいて関数というのはFunctionオブジェクトで、他のビルトインオブジェクトと同様に、組み込みのメソッドがある。これがapplyとcallしかないのだけれど、こんな感じに使う。 func.apply(thisObj,arguments) func.call(thisObj,arg1,arg2,arg3) thisObjには、その関数内で「this」として使うオブジェクトを指定する。applyの第二引数はargumentsオブジェクトを指定する。配列か、現在実行中の関数のargumentsオブジェクトを丸ごと別の関数に引き渡せる。つまり引数の長さが良くわかってなくても使える。 callは代わりに func.apply(thisObj,[arg1,arg2,arg3]) と書けるので、実はいらないんじゃないかと思う。 これらは多分、ふつうにJavaScriptを書く上で

    inurota
    inurota 2008/12/24
    いろいろなやり方の一つ。
  • 1