首页 > 代码库 > javascript函数节流(throttle)与函数去抖(debounce)
javascript函数节流(throttle)与函数去抖(debounce)
throttle 等时间 间隔执行函数。
debounce 时间间隔 t 内若再次触发事件,则重新计时,直到停止时间大于或等于 t 才执行函数。
1、throttle函数的简单实现
function throttle(fn, threshhold, scope) { threshhold || (threshhold = 250); var last, timer; return function () { var context = scope || this; var now = +new Date(), args = arguments; if (last && now - last + threshhold < 0) { // hold on to it clearTimeout(deferTimer); timer = setTimeout(function () { last = now; fn.apply(context, args); }, threshhold); } else { last = now; fn.apply(context, args); } };}//调用方法$(‘body‘).on(‘mousemove‘, throttle(function (event) { console.log(‘tick‘);}, 1000));
2、debounce函数的简单实现
function debounce(fn, delay) { var timer = null; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { fn.apply(context, args); }, delay); };}//调用方法$(‘input.username‘).keypress(debounce(function (event) {// do the Ajax request}, 250));
转自:http://www.cnblogs.com/fsjohnhuang/p/4147810.html
javascript函数节流(throttle)与函数去抖(debounce)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。