您的位置:首页 > Web前端 > JavaScript

js 不用重复检测浏览器提高效率

2011-05-25 00:00 477 查看
这里以拿 添加事件示例
// 方式1 
function addEvent(el, type, fn){ 
if(el.addEventListener){ 
el.addEventListener(type, fn, false); 
}else{ 
el.attachEvent('on'+type, fn) 
} 
} 

// 方式2 
var addEvent = document.addEventListener ? 
function(el, type, fn) {el.addEventListener(type, fn, false);} : 
function(el, type, fn) {el.attachEvent('on'+type, fn)};

方式1在函数内做判断,每次给元素添加事件都需判断一次,效率相对低一些。
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js都是采用这种分支方式。

方式2使用了两个匿名函数,仅在初始化时判断一次,后每次调用无须判断。效率相对高一些。
Ext/kissy/qwrap 采用这种分支写法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: