js函数的延迟加载实现代码


Posted in Javascript onOctober 11, 2012
//非延迟加载的函数,每次调用都会进行条件判断 
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); 
}
Javascript 相关文章推荐
jquery 打开窗口返回值实现代码
Mar 04 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
Dec 28 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
Oct 11 Javascript
JavaScript var声明变量背后的原理示例解析
Oct 12 Javascript
浅谈javascript函数式编程
Sep 06 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
浅谈jquery点击label触发2次的问题
Jun 12 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 Javascript
javascript中方便增删改cookie的一个类
Oct 11 #Javascript
js事件(Event)知识整理
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
Oct 11 #Javascript
You might like
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JsRender for object语法简介
2014/10/31 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
python实现自动登录后台管理系统
2018/10/18 Python
python中metaclass原理与用法详解
2019/06/25 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
python 6种方法实现单例模式
2020/12/15 Python
特步官方商城:Xtep
2017/03/21 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
放假通知范文
2015/04/14 职场文书
教师节晚会主持词
2015/06/30 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
世界文化遗产导游词
2019/08/07 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python