首页 > 代码库 > javascript之函数节流
javascript之函数节流
函数节流原理:
设置一个定时器setTimeout,让执行的函数延缓一段时间之后再去执行,如果在这段时间内,该函数又触发了,那就清除原来的setTimeout,创建一个新的setTimeout,依此类推下去,就执行了函数节流。
函数封装:
1 function throttle(method, context) {2 clearTimeout(method.tId);3 method.tId = setTimeout(function(){4 method.call(context);5 }, 100);6 }
调用:
1 window.onresize = function(){2 throttle(myFunc);3 }
另一种封装方法:
1 var throttle = function(fn, delay){ 2 var timer = null; 3 return function(){ 4 var context = this, args = arguments; 5 clearTimeout(timer); 6 timer = setTimeout(function(){ 7 fn.apply(context, args); 8 }, delay); 9 };10 };
调用:
1 window.onresize = throttle(myFunc, 100);
第一种方法,把上下文变量当做函数参数,直接可以定制执行函数的this变量;后一个函数优势在于把延迟时间当做变量。
javascript之函数节流
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。