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之Ajax运用 学习运用篇
Sep 26 Javascript
Chosen 基于jquery的选择框插件使用方法
May 30 Javascript
用jquery统计子菜单的条数示例代码
Oct 18 Javascript
通过url查找a元素并点击
Apr 09 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
微信小程序 animation API详解及实例代码
Oct 08 Javascript
js querySelector() 使用方法
Dec 21 Javascript
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
Vue底层实现原理总结
Feb 17 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 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
Window下PHP三种运行方式图文详解
2013/06/11 PHP
PHP四大安全策略
2014/03/12 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
基于jQuery的js分页代码
2010/06/10 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python实现最小二乘法线性拟合
2019/07/19 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
关于Assembly命名空间的三个面试题
2015/07/23 面试题
构造方法和其他方法的区别
2016/04/26 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
大学教师年终总结的自我评价
2013/10/29 职场文书
股东合作协议书
2014/04/14 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技
详解如何使用Nginx解决跨域问题
2022/05/06 Servers