只要加一行,让 IE 五倍速执行 JavaScript

 2023-09-05 阅读 312 评论 0

摘要:< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 加入_d=document;eval_r('var document=_d')解说 因为 document 是window的子对象,对 IE 来说,要使用 document ,必须经过window,而
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
加入_d=document;eval_r('var document=_d')

解说

因为 document 是 window 的子对象,对 IE 来说,要使用 document ,必须经过 window ,而上面的方法是让 document 成为一个独立的对象,不必透过 window ,因此速度就提升了。

eval_r((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(' ')));

但当然也只有使用到这些对象的时候效能会有所提升,如果你的程序中用到这些对象的部份不多,便不会有这么大的效果。

后记

根据这个原理,我想 Super_Long_Really_Annoying_Enormous_Class_Names(); 应该也会比 Super.Long.Really.Annoying.Enormous.Class.Names(); 更快吧! JavaScript 时要注意不要建立太多子对象……

本文转自 netcorner 博客园博客,原文链接: http://www.cnblogs.com/netcorner/archive/2007/12/20/2912241.html ,如需转载请自行联系原作者

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/208.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息