前端性能优化:重写自己,减少判断
2016-08-01 09:27
239 查看
重写自己如何减少判断?其实我也是学习别人的代码,才明白的。
具体代码:
//兼容的绑定事件方法
function addHandler(target, eventType, handler) {
//重写自己
if (target.addEventListener) { //DOM2 Events
addHandler = function (target, eventType, handler) {
target.addEventListener(eventType, handler, false);
};
} else { //IE
addHandler = function (target, eventType, handler) {
target.attachEvent("on" + eventType, handler);
};
}
//关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断
addHandler(target, eventType, handler);
}
function removeHandler(target, eventType, handler) {
//o//重写自己
if (target.removeEventListener) { //DOM2 Events
removeHandler = function (target, eventType, handler) {
target.addEventListener(eventType, handler, false);
};
} else { //IE
removeHandler = function (target, eventType, handler) {
target.detachEvent("on" + eventType, handler);
};
}
//关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断
removeHandler(target, eventType, handler);
}一般人的写法是这样:
function addHandler(target, eventType, handler) {
if (target.addEventListener) { //DOM2 Events
target.addEventListener(eventType, handler, false);
} else { //IE
target.attachEvent("on" + eventType, handler);
}
}
虽然多了几行代码,但思想完全不一样,一般人写的,每次绑定必然后判断,可人家写的就只有一次判断!!!只有一次!!!
具体代码:
//兼容的绑定事件方法
function addHandler(target, eventType, handler) {
//重写自己
if (target.addEventListener) { //DOM2 Events
addHandler = function (target, eventType, handler) {
target.addEventListener(eventType, handler, false);
};
} else { //IE
addHandler = function (target, eventType, handler) {
target.attachEvent("on" + eventType, handler);
};
}
//关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断
addHandler(target, eventType, handler);
}
function removeHandler(target, eventType, handler) {
//o//重写自己
if (target.removeEventListener) { //DOM2 Events
removeHandler = function (target, eventType, handler) {
target.addEventListener(eventType, handler, false);
};
} else { //IE
removeHandler = function (target, eventType, handler) {
target.detachEvent("on" + eventType, handler);
};
}
//关键,调用新方法,重写自己,减少判断,第二次调用时,使用新方法,没有判断
removeHandler(target, eventType, handler);
}一般人的写法是这样:
function addHandler(target, eventType, handler) {
if (target.addEventListener) { //DOM2 Events
target.addEventListener(eventType, handler, false);
} else { //IE
target.attachEvent("on" + eventType, handler);
}
}
虽然多了几行代码,但思想完全不一样,一般人写的,每次绑定必然后判断,可人家写的就只有一次判断!!!只有一次!!!
相关文章推荐
- 前端性能优化-减少重绘
- Web前端性能优化教程06:减少DNS查找、避免重定向
- Web前端性能优化(一)减少Http请求
- 前端性能优化:条件判断优化
- 前端性能优化 —— 减少HTTP请求
- 前端性能优化--合并压缩js,减少http请求次数
- Web前端性能优化教程01:减少Http请求
- 前端性能优化--为什么DOM操作慢? 浅谈DOM的操作以及性能优化问题-重绘重排 为什么要减少DOM操作 为什么要减少操作DOM
- Web前端性能优化(六)减少DNS查找、避免重定向
- 一个小项目中的Python中的性能优化细节——(下)其他的小细节,减少调用、if判断的顺序
- 从前端性能优化的角度提高自己的博客的访问速度
- 前端性能优化的方法和工具,减少http请求的次数和速度
- web前端页面性能优化小结
- 网站前端性能优化
- P2P点播系统性能优化(2): 减少客户端的心跳包
- 何崚谈阿里巴巴前端性能优化最佳实践
- JSConf 2010 (三):Raphaël、优化前端性能
- 【经验总结】网站前端性能优化总结
- Web 前端性能优化