|
延迟加载的函数,第一次调用后,会覆盖原来的老函数,以后再次调用的是新函数,不会再进行条件的判断,提升效率
复制代码 代码如下: //非延迟加载的函数,每次调用都会进行条件判断 function removeHandler(target,eventType,handler) { if(target.removeEventListener) { target.removeEventListener(eventType,handler,false); }else { target.detachEvent("on"+eventType,handler); } } //延迟加载的函数,第一次调用后,会覆盖原来的老函数,以后再次调用的是新函数,不会再进行条件的判断,提升效率 function addHandler(target,eventType,handler) { if(target.addEventListener) { addHandler = function(target,eventType,handler){ target.addEventListener(eventType,handler,false); } }else{ addHandler = function(target,eventType,handler){ target.attachEvent("on"+eventType,handler); } } addHandler(target,eventType,handler); }
//条件预加载 //条件预加载确保所有函数调用时间相同。其代价是在脚本加载时进行检测。预加载适用于一个函数马上就会被用到,而且在整个页面生命周期中经常使用的场合。
var addEventHandler = document.body.addEventListener ? function(target,eventType,handler) { target.addEventListener(eventType,handler,false); } : function(target,eventType,handler) { target.attachEvent("on"+eventType,handler); }
|
|