公告:欢迎来到极梦小屋!本站资源全部可以免费下载,积分都是可以免费获取的!

js debounce 实现

debounce 概念:

触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
1.underscore 实现:

function(func, wait, immediate) {
 var timeout, args, context, timestamp, result;
 var later = function() {
 var last = _.now() - timestamp;
 if (last < wait && last >= 0) {
   timeout = setTimeout(later, wait - last);
 } else {
   timeout = null;
   if (!immediate) {
     result = func.apply(context, args);
     if (!timeout) context = args = null;
   }
 }
};
return function() {
 context = this;
 args = arguments;
 timestamp = _.now();
 var callNow = immediate && !timeout;
 if (!timeout) timeout = setTimeout(later, wait);
 if (callNow) {
   result = func.apply(context, args);
   context = args = null;
 }
 return result;
};
};

为TA充电
共{{data.count}}人
人已赞赏
经验杂谈

node 中间层怎样做的请求合并转发

2020-12-30 21:17:04

经验杂谈

Redis知识技巧

2021-1-17 13:28:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索