index.js 937 B

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