2010-07-01から1ヶ月間の記事一覧

コードを削る

Twitter だとちょっと厳しいので、こっちでまとめ。MobileWebKit に対応しようと思ったら、コードをなんとかして削る必要があります。 AND 演算子 で 4byte 削る(10byte → 6byte) if (a) { b(); } ↓ a && b(); OR 演算子 で 5byte 削る(11byte → 6byte) if (…

WebStorageで、ワンライナー IE8, IE9pp3 ブラクラ

localStorage.removeItem() 以外にも、localStorage.setItem(); や localStorage[key] = value; でも落ちるようです(コメント欄参照) <input id="A" type="text" value="" /><script>localStorage.removeItem(A.value)</script> 上記のコードをIE8で実行すると、タブクラッシュ → 復元 → タブクラッシュ → 復元機能…

uupaa.js に uuCanvas.js をマージ

uupaa.js version 0.8 に uuCanvas.js の最新版相当の機能をマージしました。IE なら VML, Silverlight3+, Flash9+ のいずれかでレンダリングを行い、それ以外のブラウザでは<canvas>でレンダリングします。 Flash や Silverlight が利用できない場合でも VML でレン</canvas>…

fn.call(何か) ベンチ

気になったのでとってみたけどあまり意味が無いベンチになりました。fn.call(null) って速いのね。 Browser fn.call(null) fn.call(this) fn.call(window) (function(){fn()} Fx3.6 1162 5911 3630 6432 IE8 937 1010 1073 2338 IE6 2833 2447 2578 5093 GC6…

CSSに似せた何かでスタイルをもっと扱いやすくできないか

js

できるだけCSSに似せた形でスタイルを記述し、プログラム的にテストなんか出来たらなぁ〜、とか考えてました。 (function() { // --- 識別子 --- var red = "#f00"; var absolute = "absolute"; var url = function(val) { return val; }; var rgba = functi…

日帰りバスツアー

(ε・﹏・)з キノウ 13時間灼熱バスツアー イッテキタヨ (ε・﹏・)з アリエッティ ココ ニ スンデル ラシイヨ http://www.seibien.jp/ (ε・﹏・)з アリエッティ ドコ? ミツカラナイヨ イドウ (ε・﹏・)з カイダン デ ダイギョウレツ. 1ダンススムノニ 1プン カカル (ε・﹏・)з ムンムンムラムラ セナカ 滝汗 (36℃) (ε・﹏・)з 40〜50プンマタ…

IE8の開発者ツールはスクリプトの実行結果に悪影響を及ぼすことがある

js IE

IE8 で以下のページを表示し開発者ツールで[デバッグ]を開始すると debugger; の位置で自動的に停止します。 # debugger はハードブレイクポイントです。大抵のブラウザで利用可能です。 <html><head><title></title> <style> div { border: 1px solid gray; width: 200px; height: 200px } </style> <script> w</head></html>…

ワンライナーIE6殺処分(精神的ブラクラ)

<script>document.createStyleSheet().addRule("*>*", "color:red");</script> このようなコードが埋め込まれたページをIE6で開くと、10数秒でメモリとswapを食い尽くします。PCが「ぎゃふん」って言うので、気をつけてください。 何も作業していない(再起動OKな)状態で実行す…

CSSセレクタを書き直したなど

2年ぶりにCSSセレクタを書き直しました前回との違いは 前作の精度を98点とすると今回は96点ぐらい。W3Cの意地悪テストを幾つかスキップ コード量が半分に。実行速度はほぼ同じ jQuery拡張, :active, :visited は非サポート(:visited は空の配列を返す) W3Cの…

JIT搭載ブラウザでは変数の再代入コストは無視できる

JIT搭載ブラウザでは a = a; など同じ変数に対する代入を繰り返しても遅くならず、JIT非搭載ブラウザだと a = a; で遅くなります。 JIT非搭載 Browser a=a nop Firefox3 1177 666 IE8 2036 1265 IE6 4291 3406 JIT搭載 Browser a=a nop Firefox3.6 236 234 S…

100行ちょっとで CSS3Selectors の tokenizer を書いてみた

js

CSSセレクタの話題って1年半ぶりぐらい。 知らない間に CSS3 Selectors Level 3が出てたので、tokenizer を書いてみました。 (function() { window.tokenizer = tokenizer; var _A_TAG = 1, // E _A_COMBINATOR = 2, // E > F _A_ID = 3, // #ID _A_CLASS = …

textContent を使うと Opera10.60 がどんどん重くなる

追記 http://jsdo.it/uupaa/u0QX に最小化したコードを載せました 今回のケースでは、条件(1)と(2)を満たす場合に、どんどん重くなっていくようです。 function bench() { // (1) nodeList を関数内部で毎回取得している var nodeList = document.getElement…