var document = window.document;でも動く予感
- 2007-10-11
- カテゴリ: Client Side
- タグ: JavaScript Tips トラックバック
IT戦記 - 一行で IE の JavaScript を高速化する方法
/*@cc_on _d=document;eval('var document=_d')@*/この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。
はてブのコメントで指摘している人がいたんだけど、
var document = window.document;
でも機能するような予感。スコープとかの関係なのか、なぜか高速化する前も速くなってるけど…
// Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 141 /*@cc_on var document = window.document; @*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 156
高速化コードを挿入しない場合は↓
var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 516
なんでー
追記
var document = document;
でもちゃんと動いてるよー!
なんでだー
さらに追記(Thanks to id:amachang氏)
勘違いしてました。
var document = document; window.alert(document); //undefined
これじゃ駄目ですね。上のテストコードではdocumentがundefinedでも平気だから動いていた模様…
トラックバックURL
- http://liosk.blog103.fc2.com/tb.php/42-defb0812
0 件のトラックバック
2 件のコメント
-
そうですよね><
eval が気持ち悪いのです><
でも、その例だと document が undefined になってしまいます><
以下のページを IE で見てみるとわかります^^;
http://amachang.art-code.org/ie_boost/hoge.html- 2007-10-11
- by amachang
- id:-
-
あ、理解。
確かに駄目だ…- 2007-10-11
- by LiosK
- id:-

