タグ

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

  • 最速インターフェース研究会 :: 全力で勝手に添削に添削に添削の自転車置き場にマジレス

    http://blog.livedoor.jp/dankogai/archives/50808279.html http://d.hatena.ne.jp/amachang/20070413/1176421425 「Object.prototype」って書いちゃうと勘違いする人も多いと思うので、MyObject.prototypeとかSomeClass.prototypeとか何でも良いけど別の書き方にすべきだと思った。 Object.prototype = {/* ... */}は、よほど特殊な事情がない限り避けるべきで、 MyObject.prototype = {/* ... */}で困るのはconstructorプロパティが消えてしまうぐらいで、普通は困らない。

    amachang
    amachang 2007/04/13
    Object.prototype という箇所は適切ではありませんでした。ということで Klass.prototype に直しました。
  • 最速インターフェース研究会 :: 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); }

    amachang
    amachang 2007/02/16
    汎用的な関数文字列を自動生成。プロパティ名が要る。
  • 最速インターフェース研究会 :: 最近IE6でWikipedia日本語版の表示が異常に遅いのはKeepAliveのせい

    KeepAliveのせいというと誤解があるか。IEのせいなんだけど。 どうもここらへんの問題っぽい。 http://d.hatena.ne.jp/kinneko/20051214/p4 http://otaba.seesaa.net/article/10637205.html 2月初めぐらいからか、キャッシュが空の状態で日語版のWikipediaを表示すると、IE6が1分間ほど固まる、という不具合があるそうだ。 JavaScriptを切ると正常に表示できるようになるけど、JavaScriptが重い、ということはなかった。JavaScriptが重いならCPUの使用率が高くなるはずだし、なんかおかしいフリーズの仕方をする。で、Proxomitronでレスポンスとか調べてみてたりしたのだけれど、プロキシ経由だと問題なく表示される。 結論としては、なんらかの原因でkeepaliveがタイムアウト

    amachang
    amachang 2007/02/11
    Connection: Keep-Alive, close コメント欄も併せて
  • 2005-02-14 17:39:18 - おえかきひろば

    リンクマップ案の発展系。 初期状態で中央のエリアにはページの一覧が表示されている。 マウスかキーボードでページ名をクリックすると、 左に:そのページにリンクしているページ名。 右に:そのページからリンクしているページ名。 が表示される。 カーソルの左キーもしくは「リンク元」をクリックすると、 中央のエリアが現在左側に表示されているリストに置き換わる。 逆にカーソル右か「リンク先」をクリックで、 中央のエリアは現在右側に表示されているリストに置き換わる。 動作イメージとしては、 現在表示されているページからのリンクを 次々とキーボード操作だけで辿っていける感じで、 逆方向に現在のページのリンク元、さらにそのリンク元と辿っていくことも出来る。 多少幅はとるけども、 三段で並べるのがリンク元とリンク先の関係性がわかりやすいだろう。 SVGを表示 Mozilla/4.0 (compatible;

    amachang
    amachang 2007/02/06
    新 UI
  • JavaScriptでnamed capture

    これはなに JavaScriptの正規表現でNamed Captureを使えるようにします。 手抜きなのでString#match,String#replace,RegExp#testのみサポート。 ダウンロード namedcapture.js サンプル 実行 var reg_url = /(<protocol>http|https):\/\/(<domain>[^\/]*?)\/(<path>.*)/; alert(reg_url); // この状態だとマッチしません reg_url = reg_url.support_capture(); alert(reg_url); // <>の部分を無視して再コンパイルします alert(reg_url.captureNames); // protocol,domain,path var result = "http://example.com/

    amachang
    amachang 2007/02/06
    正規表現の結果を名前で捕捉
  • 最速インターフェース研究会 :: お気に入りをサイドバーに常時表示させてない人はどうしてるのか

    [Memo]ブラウザの「お気に入り」はテレビのリモコンなんじゃないか 第三十三回 最近,普通の人はWebブラウジングのとき常に「お気に入り」をサイドバーに表示してるらしいという話題がある. ■一般的なネットユーザーは常にお気に入りを(ブラウザ左側に)表示している これ。これどうなの?みんなそういう風にしてネットを見てるの?常に左側 [WWW][computer]ブラウザの思い出話 一般人は常に「お気に入り」を表示している!http://plaza.rakuten.co.jp/catfrog/diary/200701140026/http://b.hatena.ne.jp/entry/http://plaza.rakuten.co.jp/catfrog/diary/200701140026/らしいんですが、自分はもっぱらURL直打ちですね。どのブラウザでも使えるし。 「お気に入りをサイドバー

    amachang
    amachang 2007/01/16
    ↑↓ですよね。直打ち以外考えられない。忘れそうなURLは、ソーシャルブックマーク
  • document.lazy_writer

    特定のscript中に含まれるdocument.writeを上書きして、遅延描画にすることができます。 document.writeを使う広告配信スクリプトや、ブログパーツなどの挙動を置き換えることが出来ます。 外部サーバーから読み込むスクリプトをページ最後部に記述することでページレンダリングを妨げなくなります。 このページはこんな感じになってます。 var adsense_url = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; document.lazy_writer(adsense_url, function(str){ var id = "adsense_" + this.script_count; document.getElementById(id).innerHTML = str; }, {delay :

    amachang
    amachang 2006/12/15
    何かあったときに使う
  • 最速インターフェース研究会 :: ライブドアのテクノロジーセミナーでしゃべってきました

    昨晩はライブドアで開催されたテクノロジーセミナーで「Technologies for UI」という題でプレゼンをやりました。 発表資料はpdfhtmlで公開する予定ですが、とりあえずテキストだけ先にアップしておきます。 http://ma.la/files/livedoor/seminar2006/seminar.txt プレゼンツールがFirefox専用だったりするので、これも少し手直しして公開予定です。 こういう機会があるたびにプレゼンツールを作ってるような気がします。 ---- 追記:12/15 ライブドアのtechblogの方に発表資料をアップしました。 http://blog.livedoor.jp/techblog/paper/ldtech2006/ 上下カーソルキーでページをめくれます。

    amachang
    amachang 2006/12/15
    僕には、ベンチマーク重視から体感重視への変換が必要なようだ
  • 最速インターフェース研究会 :: ページレンダリングを妨げないdocument.writeの実装

    とてもシンプルに自分自身が属する script 要素を取得 http://d.hatena.ne.jp/amachang/20061201/1164986067 document.writeをDOM仕様にする http://nyarla.net/blog/javascript-tips1 あたりに着想を受けて、作ってみました。 http://la.ma.la/misc/js/lazy_writer/ 特定のscript src内のdocument.writeをピンポイントに置き換えることができます。 制限事項としては、document.writeを使ってscriptタグを生成するようなコードの場合、IEではinnerHTMLにscriptを書いても実行されないという仕様があるので実行されません。その点を除けば、IFRAMEをdocument.writeで挿入するような、良くある広告系のdo

    amachang
    amachang 2006/12/07
    広告がレンダリングを妨げる問題を解決する方法 document.write による遅延要素挿入
  • 最速インターフェース研究会

    http://blog.livedoor.jp/dankogai/archives/50957890.html まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。影響が大きすぎるので、よっぽど変態的なライブラリじゃないと使わない。他のライブラリと組み合わせるとほぼ確実に問題が起きる。それから、deep_cloneが欲しい場合はJSONを作ってevalすればよい。パフォーマンスを気にする場合とか、浅いコピーが必要な場合はそれなりに工夫する必要があるけど。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 http://subtech.g.hatena.ne.jp/cho45/

  • 最速インターフェース研究会 :: SafariのAjaxの文字化けをクライアント側だけで対応するバッドノウハウ

    SafariでXMLHttpRequestのresponseTextが文字化けするという話。 http://blog.33rpm.jp/garbled-on-safari.html 最近のバージョンだとcontent-typeがちゃんとしてれば化けなかったような記憶があるけど、まあともかくとして、Safariで文字化けするのはJavaScript側だけで対処することができたりする。 http://kawa.at.webry.info/200511/article_9.html これ読んでほんとかよ、って感じだったんだけど案外役に立った。livedoor Readerで使われてたり。 実際に使われてるコードはこんなの。 if(browser.isKHTML){ ajax.filter.add(function(t){ var esc = escape(t); return(esc.index

  • 1