タグ

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

  • 最速インターフェース研究会 :: [Ajax] location.hashを使ったセッション復元

    最近になってようやくJavaScript関係、動的ロードを使ったテクニック等について 話せる相手ができまして、、なかなか充実しています。 Gmail、GoogleMapsのような画面遷移なしの高速なナビゲーションが注目されています。 サイトが特定のタスクに対して特化している場合、JavaScriptを使ったインターフェースの最適化が非常に有用であるのは間違いありません。 ブラウザ上で動作するリッチクライアントとしてはFlashが圧倒的に有名ですが、Flashは、ブックマーク、ブラウザの戻る進む機能、文字の拡大縮小、などのブラウザが来備えている機能が使えないため、ユーザビリティ研究者の間では嫌われ者です。 http://d.hatena.ne.jp/nazoking/20050226 というわけで、AjaxがFlashのような使い方をされないような実装例を考えてみたいと思います。 一つは、

  • 最速インターフェース研究会 :: Functionコンストラクタを使ってJavaScriptネイティブじゃない関数をラッピングする方法

    ExternalInterface.addCallback で定義された関数は apply できない http://d.hatena.ne.jp/nitoyon/20070214/p1 っていう記事に書いてあるコードを手直し。Flashをいじってないんで、上手く動くかどうかよくわかんないですが、こんな感じでいけると思います。 function applySwf(swf, method, args){ if(swf && typeof swf[method] == "function"){ var params = []; for(var i=0;i<args.length;i++) params[i] = "_"+i; Function( params.join(','), "this("+params.join(',')+")" ).apply(swf[method], args); }

    mxg
    mxg 2007/10/15
    new Function
  • 最速インターフェース研究会 :: IEでXMLHttpRequestを使えるようにする

    もうあんまり需要無いような気もするけど。 IEで「new XMLHttpRequest」と書けるようにするラッパを書いてみた。 XMLHttpRequest for IE http://la.ma.la/misc/js/ie_xmlhttp.html 結構前にIE7(JavaScriptの方)の人が似たようなのを作ってたのですが、 http://dean.edwards.name/weblog/2004/11/ie7-xml-extras/ ふつうに使う分にはこれでも問題はないです。 if(typeof ActiveXObject == "function" && typeof XMLHttpRequest == "undefined"){ XMLHttpRequest = function(){ return new ActiveXObject("Microsoft.XMLHTTP")

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

    mxg
    mxg 2007/01/29
  • 最速インターフェース研究会 :: FirefoxでJSONPのロードされるタイミングを調べてみた

    Firefoxでのスクリプト読み込みの同時実行について http://d.hatena.ne.jp/shinichitomita/20061013/1160707042 を読んで。 Opera以外は読み込み順に実行されるよね、と思ってたんだけど、どうも違うみたいなので、わかりやすいようにサンプルを作ってみた。 http://la.ma.la/misc/sleep/ ウェイト入れてレスポンスを返すCGIを書いてロード。0,1,2,3って順番で表示されるはずだ、と思って実験してみたらSafariでしかうまくいかなかった。 色々試してみたけど、 - Safari: 並列リクエストされてロードされた順に実行。 - Firefox: 並列リクエストされるけど実行順は固定。 - IE: 並列リクエストされて実行順はほぼ固定?応答が遅いと後回しにされてるような気がする。 - Opera: 並列リクエスト

  • 最速インターフェース研究会 :: 萌ディタとSleipnirとWEBrickを使って人のサイトのCSSをリアルタイム編集するデモ

    Shiubya.js #1で話したネタですが、Winkでデモを作ってみました。 http://la.ma.la/misc/demo/realtime_cssedit.htm エディタとブラウザが並んでて窮屈ですが、実際はこれを20インチワイド液晶縦置きデュアルでやります。 仕組みは、WEBrickでローカルプロキシを立てて、同名のファイルがローカルにある場合は内容を置き換えて表示する、というもので、CSSJavaScriptを編集するのに向いています。 プロキシサーバーはPerlで書かれた同等のものがここにあります。 http://www.ornithopter.jp/archives/2006/05/perl_perl.html 自分が使ってるのは必要に応じて行き当たりばったりに拡張していったりするのですが、現時点でのソースを置いておきます。 http://la.ma.la/misc/

    mxg
    mxg 2006/12/13
    ローカルプロキシ
  • 最速インターフェース研究会 :: 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を書く上で

    mxg
    mxg 2006/11/20
    遅延
  • 最速インターフェース研究会 :: GoogleAutoPagerというのを作りました

    息抜きにGreasemonkeyスクリプトを作ってみました。逐次ロードを使った、もっと読むインターフェースの試作です。Trixieでも動きます。 リンクを右クリックしてInstall User Script http://la.ma.la/misc/userjs/GoogleAutoPager.user.js 動いてる様子(Flash) http://la.ma.la/misc/demo/googleautopager.htm 動かせない人も多いと思うので、どんな感じなのかわかるようにスクリーンキャプチャも作りました。あんまり作りこんでないですがとりあえず公開。GPLライセンスにします。 任意の位置をダブルクリックで有効/無効が切り替わります。スクロール位置を定期的に検知し、下のほうまでスクロールしたら次のページを自動でロード、現在表示中の検索結果に継ぎ足していきます。 電子辞書でよく見か

    mxg
    mxg 2006/09/19
  • 最速インターフェース研究会 :: AutoHotkeyを使ってFirefoxをリロードするだけのexeファイルを作ってみた

    エディタの保存と同時にブラウザを自動でリロードさせると開発がはかどって素晴らしいよ、みたいな話をしてたら軽く派生したわけなんですが 自動リロードで開発をアジャイルにするたった一つの方法! < 31 < July < 2006 < nulog, NULL::something : out of the headphone http://lowreal.net/logs/2006/07/31/1 hail2u.net - Weblog - CSSファイルを保存すると同時にブラウザをリロード http://hail2u.net/blog/webdesign/save-css-file-and-reload-browser.html WSHやRubyからキー操作を送るって方法だと、操作対象のウィンドウをアクティブにしないとキー操作を受け付けてくれなかったりして(もっといい方法あるのかも知れないけど

    mxg
    mxg 2006/09/03
  • 最速インターフェース研究会 :: XMLはメタデータというより生データとしての利用価値が高まりつつあり、AjaxによるUIの切り離しがそれを加速する

    全部まとめて色々書こうかと思ったのだけれど、どうにも上手くいかないので、少しずつ分割して書くことにする。 まず最初にこれなのだけれども http://johnvey.com/features/deliciousdirector/ これは何かというと「JavaScriptで書かれたdel.icio.us APIのクライアント」である。最初に全てのブックマークを受信して、その後のタグによる絞込みなんかは全てJavaScriptで行う、というものだ。 とりあえず、実際にこのデモを見るのが早いだろう。 http://johnvey.com/features/deliciousdirector/demo.html この方式では、ブックマークの件数が1万件を超えるようなケースになると破綻することがわかっている。 del.icio.usのAPIでは特定のタグを含むブックマークを取り寄せることも出来るので

    mxg
    mxg 2006/09/03
  • 最速インターフェース研究会 :: Firefoxでテキストをクリップボードにコピーする方法

    動作デモ http://la.ma.la/misc/js/setclipboard_for_firefox.html Firefox1.5 + FlashPlayer8.5で動作確認してます。Opera8.5では動いたがOpera9では動作せず。Safariは知らない。FlashPlayerのバージョンによっても何か違うのかもしれない。 元ネタ http://a-h.parfe.jp/einfach/archives/2005/0706043145.html IEではデフォルト設定でブラウザからクリップボードの読み書きができる、というのは割と有名な話ですが、Flashを使うとIE以外でもクリップボードにテキストをコピーすることができます。上書きのみで読み込みはできないようなので多少は安心です。(クリップボードが勝手に置き換わってしまう、という悪戯はできる) で、このFlashを使ったクリッ

    mxg
    mxg 2006/07/27
  • Amazonでまとめて買うボタンを作るやつ

    asinのリストからまとめて買うボタンを作ります。 ちゃんと動くのかとか、紹介料がきちんと入るのかとか、保障できません。 派生ツールを公開する場合はSubscriptionIdを自分のものに書き換えてください。 入力

    mxg
    mxg 2006/06/14
  • Amazon最速検索 説明書

    デモ兼ダウンロード βバージョン β以前 XSLファイル 特徴 JavaScriptだけで動いています。 サーバーサイド処理は一切ありません。Amazonと直結です。 ローカルディスクに保存してもそのまま動きます。 だからどうしたという話ではありますが、面白いのはそこです。理解しろ。 Safariでは動きません 使い方 単語入れて検索。 続きがある場合は、続けてエンターを押すと、次の10件を読み込む。 動作の仕組み 簡単に書くと、検索実行されるたびにscriptタグを動的生成してAmazonウェブサービスにリクエストを発行、Amazonの側でXSLTによって生成されたJavaScriptのコードを実行して画面に検索結果を追加しています。 ただし、Amazonの側では単純なデータを返すのみで、実際の画面の制御は全てHTML側のJavaScriptに記述しています。 JavaScript

    mxg
    mxg 2006/05/16
  • 1