給心急的讀者們
/*@cc_on _d=document;eval('var document=_d')@*/
解說
因為 document 是 window 的子物件,對 IE 來說,要使用 document ,必須經過 window ,而上面的方法是讓 document 成為一個獨立的物件,不必透過 window ,因此速度就提昇了。
這個方法也適用於其他子物件,以下是完整的加速法:
/*@cc_on
eval((function(props) {
var code = [];
for (var i = 0, l = props.length;i<l;i++){
var prop = props[i];
window['_'+prop]=window[prop];
code.push(prop+'=_'+prop)
}
return 'var '+code.join(',');
})('document self top parent alert setInterval clearInterval setTimeout clearTimeout'.split(' ')));
@*/
但當然也只有使用到這些物件的時候效能會有所提昇,如果你的程式中用到這些物件的部份不多,便不會有這麼大的效果。
資料來源:一行で IE の JavaScript を高速化する方法
後記
根據這個原理,我想 Super_Long_Really_Annoying_Enormous_Class_Names(); 應該也會比 Super.Long.Really.Annoying.Enormous.Class.Names(); 更快吧! XD 寫 JavaScript 時要注意不要建立太多子物件……
剛才看到這個 =_____=”
http://203.72.226.64/lifetype/post/20/150
留言提醒他加上出處了…
謝謝你囉! :)