addEvent和removeEvent优化写法
;(function(){
/**
* 初始化分支是一种优化模式,当知道某个条件在整个生命周期内都不会发生变化时,仅对该条件测试一次。
*/
// 一般写法
var util = {
addEvent: function(el, type, fn) {
if(window.addEventListener{
el.addEventListener(type, fn, false)
}else if(document.attachEvent) {
el.attachEvent('on' + type, fn);
}else{
el['on' + type] = fn;
}
},
removeEvent: function() {
// 类似addEvent
}
}
// 优化写法。先定义接口,再实现借口,达到了只需验证一次的目的
var util = {
addEvent: null,
removeEvent: null
};
if(window.addEventListener) {
util.addEvent = function(el, type, fn) {
el.addEventListener(type, fn, false)
};
util.removeEvent = function(el, type, fn) {
el.removeEventListener(type, fn, false)
}
} else if(document.attachEvent) {
util.addEvent = function(el, type, fn) {
el.attachEvent('on' + type, fn)
};
util.removeEvent = function(el, type, fn) {
el.detachEvent('on' + type, fn)
}
} else {
util.addEvent = function(el, type, fn) {
el['on' + type] = fn;
};
util.removeEvent = function(el, type, fn) {
el['on' + type] = null;
}
}
}());
addEvent和removeEvent优化写法的更多相关文章
- Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法
Xcode4.4(LLVM4.0编译器)中NSArray, NSDictionary, NSNumber优化写法 从xcode4.4开始,LLVM4.0编译器为Objective-C添加一些新的特性. ...
- C#程序员应该养成的程序性能优化写法
转载一个别人的文章 隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒…… 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对 ...
- Oracle sql的基本优化写法和思路。
首先简单介绍下常规的sql优化的方式: 1.肯定有人说建索引啊. 2.数据量实在太大,建分区啊. 3.其实基于目前公司的业务还有一种办法那就是向上聚集表.根据查询业务,专门抽取上来一张表,直接做到se ...
- 48 条高效率的 PHP 优化写法
来源:歪麦博客 https://www.awaimai.com/1050.html 1 字符串 1.1 少用正则表达式 能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式, 因为其效率 ...
- SimpleDateFormat优化写法
在一个读取数据库数据导出到excel文件的例子当中,每次处理一个时间信息的时候,就需要创建一个SimpleDateFormat实例对象,然后再丢弃这个对象.大量的对象就这样被创建出来,占用大量的内存和 ...
- 0-N-0计数的优化写法
采用取余%的写法: int i = 0; while( 1 ) { printf( "%d\n", i ); i = ( i + 1 ) % ( N + 1 );}
- 石子合并(直线版+环形版)&(朴素写法+四边形优化+GarsiaWachs算法)
石子合并-直线版 (点击此处查看题目) 朴素写法 最简单常见的写法就是通过枚举分割点,求出每个区间合并的最小花费,从而得到整个区间的最小花费,时间复杂度为O(n^3),核心代码如下: ; i < ...
- Android关于listView的BaseAdapter以及getView的三级优化
1.4个重写方法的含义 自定义Adapter继承自BaseAdapter(通用适配器) getCount(); getItem(); getItemId(); getViewTypaCount() ...
- SQL SERVER全面优化-------写出好语句是习惯
前几篇文章已经从整体提供了诊断数据库的各个方面问题的基本思路...也许对你很有用,也许你觉得离自己太远.那么今天我们从语句的一些优化写法及一些简单优化方法做一个介绍.这对于很多开发人员来说还是很有用的 ...
随机推荐
- js中this的理解
平常用this很多,对this的理解就是this是对应执行环境,然而很多时候效果并不是想要的,最近看了一些谈到this的笔记和书籍,总结下. 对this的误解: this是指向函数本身 先上个demo ...
- 设置ArcGIS的外观改回到出厂
在一般的软件中,都可以在工具-选项中打开相关设置将应用程序的外观改回到出厂.但ArcGIS好像没有,但查帮助文档原来是这样: 配置的更改保存在模板文档中(例如,ArcMap 将其更改保存在 Norma ...
- Atitit.HTTP 代理原理及实现 正向代理与反向代理attilax总结
Atitit.HTTP 代理原理及实现 正向代理与反向代理attilax总结 1. 普通代理1 1.1.1. 普通代理2 2. 隧道代理3 3. 反向代理 4 4. 正向代理也可以使用apache实现 ...
- 同步推是如何给未越狱的IOS设备安装任意IPA的?
工作准备: 1. 准备一台MAC 2. 拥有一份299企业证书, 然后按照下面步骤操作: 1. 把xxxx.ipa改成xxx.zip, 解压缩得到Payload文件夹 2. 替换Payload里的em ...
- Android Java 自定义异常
1.自定义异常 package com; public class ZeroException extends Exception { private static final long serial ...
- C语言异常与断言接口与实现
程序中通常会出现三种错误:用户错误.运行期错误以及异常 欢迎关注我的个人博客:www.wuyudong.com, 更多精彩文章与您分享 标准库函数setjmp和longjmp 在C语言中,标准库函数s ...
- Java基础--常用正则匹配符号(必背,必须背,死都要背)
1.字母:匹配单个字母 (1)A:表示匹配字母A: (2)\\:匹配转义字符“\”: (3)\t:匹配转义字符“\t”: (4)\n:匹配转义字符“\n”: 2.一组字符:任意匹配里面的一个单个字符: ...
- sublime text2 汉化
1.下载Sublime-Text-2中文包.zip 链接:http://pan.baidu.com/s/1mgYRW9q 密码:8ks6 2.将 Sublime-Text-2中文包.zip 解压,并将 ...
- LightSpeed 的Left Join Bug解决方案
在使用LightSpeed对数据库进行Left Join或Right Join操作时,经常会报一些匪夷所思的异常. 明明表没有问题,表面上语句写的也没问题,可总是报错.看分析器里的SQL就知道了,是L ...
- Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯
最近刚换了新的笔记本电脑,终于使用上intel i7处理器,可以使用硬件虚拟化技术安装系统.配置如下: 主机 ThinkPad P50s OS Window 10 虚拟机软件 Orac ...