var document = window.document;でも動く予感

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

var document = window.document;でも動く予感

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

トラックバック

コメント

そうですよね><
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:-

コメントの投稿

お名前
コメント
編集キー
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。