标签:on() 清空 如何 throttle 概念 执行 ttl UNC 需要
一、概念
// 简单的防抖函数 function debounce(func, wait){ var timeout; return function() { clearTimeout(timeout); // 清除计时器 timeout = setTimeout(func, wait); }; }; // 实际想要请求的函数 function realFun(){ console.log(‘success‘); } // 采用防抖 window.addEventListener(‘scroll‘, debounce(realFun, 500)); // 没有采用防抖动 window.addEventListener(‘scroll‘, realFunc);
// 节流函数 function throttle(func, wait, mustRun){ var timeout, startTime = new Date(); return function(){ var context = this; // 其实这里的this指的是window var curTime = new Date(); clearTimeout(timeout); if(curTime - startTime >= mustRun){ func.apply(context); startTime = curTime; }else { timeout = setTimeout(func, wait); } }; }; // 要出发的事件handler function realFunc(){ console.log(‘success‘); } // 采用节流函数 window.addEventListener(‘scroll‘, throttle(realFunc, 500, 1000));
标签:on() 清空 如何 throttle 概念 执行 ttl UNC 需要
原文地址:https://www.cnblogs.com/pingzi-wq/p/11523619.html