// 防抖 scroll事件滚动 搜索框 表单验证 浏览器缩放 // 防抖是指在事件触发n秒后再执行回调,如果在n秒内再次被触发,则重新计算时间。(就是在触发某个事件后,在下一次触发之前,中间的间隔时间如果超过设置的时间才会发送请求,一直触发就不会发送请求) exports.debounce=(fn,delay=3000)=>{ var timer=null; return function(){ if(timer) clearTimeout(timer); let that=this,args=arguments; timer=setTimeout(()=>fn.call(that,args),delay) } } // 节流 DOM元素的拖拽功能实现 射击游戏类 计算鼠标移动的距离 监听scroll事件 // 节流是指如果持续触发某个事件,则每隔n秒执行一次。 exports.throttle=(fn,delay=100)=>{ var start=Date.now(); return function(){ let that=this,args=arguments; let diff=Date.now()-start; if(diff > delay){ fn.apply(that,args); start=Date.now(); } } }