2009-12-01から1ヶ月間の記事一覧

JavaScript で 形態素解析ってこうですか? わかりません ><

http://pigs.sourceforge.jp/blog/20091232/perry.zip zip ファイルを解凍し、perry.htm を IE で開きます。 文章を選択するか [say] ボタンをクリック ActiveX の実行を許可しますか? と聞かれたら、許可してください。 だいたい、小学校三年生ぐらいだった…

jQuery.live っぽい実装

submit, focus, blur, change をクロスブラウザにする方法を追記しました。 最新版のコードを追記しました。 デモを追加しました。jQuery.live() は document.addEventListener(type, fn, capture) で、天辺までバブルアップしてくるイベントを拾う 拾ったイ…

document.matchesSelector 相当の機能を実装してみた

より効率的なコードに差し替えましたhttp://dev.w3.org/2006/webapi/selectors-api2/#matchesselector と id:javascripter さんの記事 Selectors APIのmatchesSelectorと、動的なページでのイベント処理via http://d.hatena.ne.jp/javascripter/20091018/125…

uupaa-0.7.alpha2.js

先ほど固めてみました。 zip: http://code.google.com/p/uupaa-js/downloads/list ブランチ: http://code.google.com/p/uupaa-js/source/browse/#svn/tags/0.7_alpha2 ザックリとした Change Log -uu-background: -uu-canvas(ident) を追加 uu.ajax.queue(),…

BackgroundCanvas(-webkit-canvas / document.getCSSCanvasContext相当)の機能を実装してみた

WebKit の先進的な機能(background: -webkit-canvas) にかなり近い機能 -uu-canvas を実装してました。 <html class="ifnojs"><head><meta charset="UTF-8" /><title></title> <style> div.nodebox { -uu-background: -uu-canvas(ident) no-repeat; width: 600px; height: 400px; border: 0px none; } </style> </meta></head></html>

Opera10.50 では SVG ⇔ Canvas 間の品質が大きく改善されている

Opera上で動作する uuCanvas.js と uupaa-0.7.js は、HTML5 Canvas Text API(fillText, strokeText, measureText ...) の機能を SVGElement 上でテキストを描画 Canvas 上に drawImage で描画 document.createElementNS("http://www.w3.org/2000/svg", tag);…

+new Date を Date.now() に差し替えると200〜400% 高速化も

CSS を利用したアニメーションでは、必ず現在時刻を取得するコードが入ります。 var now = +new Date; ECMAScript-262 5th では Date.now() が新しく追加されました。 Date.now() は +new Date と同じ機能(現在時刻を数値で返す)を持ちながら、new の必要が…

ECMAScript-262 5th で拡張された機能の対応状況

js

ECMAScript-262 5th で新しく追加された関数/メソッドの対応状況を調べてみました。 Ch3: Google Chrome3.0.195.38(stable) Ch4: Google Chrome4.0.266.0(dev) Fx3.5: Firefox3.5.3 Fx3.6: Firefox3.6β5 Op10.10: Opera10.10 Op10.50: Opera10.50α Sa3: Safa…

== はやればできる子(でも95%のシーンではいらない子)

var ary1 = [1, 2]; var ary2 = [1, 2]; プリミティブな値(文字列とか数値)だけが格納されている2つの配列(ary1 と ary2)の内容が、同じかどうかを確認したい場合に… function like(ary1, ary2) { if (ary1.length !== ary2.length) { return false; } var v…

Ajax リクエストの順番を直感的に記述可能な uu.ajax.queue を追加

uu.ajax.queue は順番や待ち合わせなどの規則を指定した Ajax リクエストを可能にします。 uu.ajax.queue(cmd, [url, ...], [option, ...], [fn, ...], lastfn, ngfn) cmd には "0+1+2" や "a>b+c>d" などのような規則を文字列で記述します a+b なら a と b …

ストレスの無いCSSアニメーションを

今日は、CSSアニメーション機能を担当する uu.tween.js のリライトをしていました。uu.tween.js を組み込むと、CSS の色, サイズ, 位置を利用したアニメーションが可能になります。これ自体はよくある機能なのですが、他のライブラリにない特徴として、CSSプ…

速くてコンパクトな JavaScript 用の sprintf の実装

[javascript][sprintf] で検索してたどり着く方が多いようなので、uupaa-0.7.js から切り出して張ってみます。 /*!{id:"uupaa.js",ver:0.7,license:"MIT",author:"uupaa.js@gmail.com"}*/ window.sprintf || (function() { var _BITS = { i: 0x8011, d: 0x80…

uupaa.js のサクサク

uupaa.js の速度的な配慮についてまとめた資料を更新しました。 http://handsout.jp/slide/1894

window.getComputedStyle for IE6+ (その2)

ちょっと手直しして、 メインロジックはそのまま コード量を 12% DOWN minify + zip で 1.1kB option = 0x0 の速度を 20% 〜 35% UP IE8 1.375ms ⇒ 1.094ms IE6 1.875ms ⇒ 1.218ms option = 0x0 で列挙するプロパティを ホワイトリスト式 ⇒ ブラックリスト式…

window.getComputedStyle for IE6+

IE6, IE7, IE8 用の window.getComputedStyle の実装(uu.cstyle.js)です。 uupaa.js 0.7 core の一部として開発していますが、これ自体はライブラリに依存していないため単体でも動きます。 uu.cstyle.js /*!{id:"uu.cstyle.js",license:"MIT",author:"uupaa…

uu.hash, uu.attr, uu.css, uu.css3 を修正

uupaa.js 0.7 の修正履歴です。興味がない方は読み飛ばしてください。 uu.hash と uu.attr の I/F を修正しました uu.hash でカンマ(,)とスペース以外のスプリッターを利用可能にしました デフォルトのスプリッターは(,) です。 第二引数にスプリッターを指…

window.xconfig の修正

uupaa.js 0.7 の修正履歴です。興味がない方は読み飛ばしてください。 window.xconfig を定義すると大まかな挙動を設定できる window.xconfig を uupaa.js ロード前に定義すると、大まかな挙動を設定できます。 現在のところ、以下の設定項目があります(変更…

IEでコメントノードを事前に除去し速度を稼ぐ

uupaa.js 0.7 の修正履歴です。興味がない方は読み飛ばしてください。 ついったーから転記 HTML load完了 ⇒ コメントノード除去 ⇒ querySelectorAll高速化 というアイデアが浮かんだ。IE の getElementsByTagName("*") はコメントノードを列挙するので、その…