2009-01-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("*") はコメントノードを列挙するので、その…

今日は、いい肉の日なので、uupaa.js 0.7 α版 をリリースするよ(その2)

14ヶ月ぶりに uupaa.js をリリースします。内容は、 HTML5 タグのサポート HTML5::Canvas CSS3 プロパティのサポート Gradients, Rounded corners, Drop shadows, Multiple backgrounds, Reflection Auto Viewbox IE boost 透過png, max-width, position: fi…

今日は、いい肉の日なので、思い切ってリリースするよ(その1)

js

私は、jQuery ユーザではないのですが、 今日は jQuery プラグインを 3つご紹介します(作者は私ではありません)。 Windows7 風メニュー http://www.coders.me/lang/es/web-html-js-css/javascript/mootools/buttons-like-windows-7-with-js-css デモ http://…

140文字以内でコナミコマンド

<script>k="";document.onkeyup=function(e){k=/38384040373937396665/.test(k+=(e||event).keyCode)?(alert(573),""):k.length>99?"":k}</script>137文字

CSS2KB をちょっと改良 + CSSファイル に Canvas の描画ルーチンを埋め込む

CSSにデータを埋め込む方法を考えてみた(CSS2KB) - latest log の続きCSS2KB とは CSS にちょっとした情報を埋め込むトリックの1つ。 list-style: url(1dot.gif?key=val) から key=val を取り出せるというもの。 CSS2KB の難点は、ダミーファイル(1dot.gif) …

uuAltCSS の改良(auto viewbox)

久しぶりに uuAltCSS.js の話を。 内容的には HTML5 + CSS3 + レイアウトデモ - latest log の続き。uuAltCSS を導入すると古いブラウザでも box-shadow などの CSS3 の機能が利用可能になります。 ただ、uuAltCSS 上で box-shadow を利用する時は、影を描画…

自作ライブラリから Firefox2 と Opera9.2x のサポートを削ります。

js

うやむやにサポートを切るのは忍びないので、ちゃんと私の考えを書いておきます。 自作ライブラリから、Firefox2とOpera9.2xのサポートを削ります。スキル不足でサポートできない訳では無く、開発リソースを集中する必要があるからです。 どうしてもサポート…

... の中身を取ってみる

<script id="js" src="http://example.com/hoge.js"> alert("hoge!"); </script>script 要素に src を設定していると、script 要素内部のテキストは JavaScript としては理解されず、実行されません。こうするとテキストとして取得したり、実行できたりします。 var node = document.getElementById("js"); var txt = wi…

canvas 周りの I/F を変更しました。

window.uudraw を window.xcanvas に、window.uuboot を window.xboot に変更しました。uupaa.js / uuCanvas.js コードリード用のエントリです。 I/F をスッキリさせたかった → Silverlight の初期化周りの問題を解決した Silverlight の初期化処理を非同期…

レンダリング速度向上のためにやったこと

uupaa.js / uuCanvas.js / uuAltCSS.js コードリード用のエントリです。uuCanvas.js のコードを眺めてて、 // CanvasRenderingContext2D.prototype.fill function fill(wire, path) { var fg = ""; // fragment : : this._elm.insertAdjacentHTML("BeforeEnd…

Array.forEach や Array.map は Firefox2〜3 や IE で利用できないケースがある

元々のタイトルは「要素数 n の密な配列を作ろうとして空回りした(JScript の Array をクロスブラウザ化)」だったんですが、ちょっと変えました。 Firefox2〜3 や IE6 〜 IE8 では、ECMAScript 5th で追加された Array.map などの便利メソッドの利用に制限が…

CSSにデータを埋め込む方法を考えてみた(CSS2KB)

ここ最近 DOM + CSS + JavaScript な Widget を作ってます。タブとかスライダーとかです。 Wiget の見栄えを切り替える方法(テーマ)も実装してますが、CSS とテーマ情報を格納するファイルが、別々のファイル(CSS + js)に分かれてしまうので、どうにかしてこ…

良く訓練されたスライダー

JavaScript で作った UI 部品の話になると、 jQuery UI とか、jQuery TOOLS あるじゃん とか良く聞きますね。 jQuery UI http://jqueryui.com/demos/ ソータブルなリスト http://jqueryui.com/demos/sortable/default.html スライダー横 http://jqueryui.com…