一、节流

一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次)

应用场景

1、鼠标连续不断地触发某事件(如点击),只在单位时间内只触发一次;

2、懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费 CPU 资源;

function debounce(fn,delay){
  let timer = null;
  return function(){
    if(timer){
      clearTimeout(timer)
    }
    timer = setTimeout(fn,delay)
  }
}

二、防抖

在事件被触发时,延迟n秒后再触发回调函数,如果n秒内又触发了事件,则会重新开始计算时间(一定时间内最后一次生效)

应用场景

用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询的请求,这样可以有效减

少请求次数,节约请求资源

function debounce(fn,delay){
  let timer = null;
  return function(){
    if(timer){
      clearTimeout(timer)
    }
    timer = setTimeout(fn,delay)
  }
}

最新文章

  1. TOJ3136
  2. mysql设置定时任务
  3. [原创] Web UI自动化应用测试框架实践 - 概览
  4. 极客技术专题【007期】:jQuery初学者入门 - jQuery Event
  5. JAVA学习(二):JDK介绍及其结构、用途
  6. 【DevExpresss】3、LookUpEdit详解(转载)
  7. 完整版百度地图点击列表定位到对应位置并有交互动画效果demo
  8. C语言字符数组作业
  9. Linux中Eclipse下搭建Web开发环境
  10. 7.10 break.c 程序
  11. 牛客练习赛43 Tachibana Kanade Loves Game (简单容斥)
  12. shell编程学习笔记(三):Shell中局部变量的使用
  13. python 集合取最大最小值
  14. php常量的实现
  15. BZOJ3144 Hnoi2013 切糕 【网络流】*
  16. RK3288 增加双屏异显 eDP+LVDS
  17. NSInvocation 调用block clang代码转换c++
  18. <数据挖掘导论>读书笔记6关联分析的高级概念
  19. Python爬虫《爬取get请求的页面数据》
  20. ubuntu for windows10设置中文

热门文章

  1. 【DL论文精读笔记】 深度压缩
  2. [排序算法] 双向冒泡排序 (C++)
  3. vulnhub靶场之DIGITALWORLD.LOCAL: SNAKEOIL
  4. 使用 Rainbond 搭建本地开发环境
  5. 【Java面试指北】Exception Error Throwable 你分得清么?
  6. RGB以及RGBA
  7. nuxt.js安装使用
  8. JavaScript:变量的作用域,window对象,关键字var/let与function
  9. Redis RDB 与AOF
  10. 后端流传输excel文件到前端