123456789101112131415161718192021222324 |
- // 防抖 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();
- }
- }
- }
|