debounce vs throttle

debounce假设你正在乘电梯上楼,当电梯门关闭之前发现有人也要乘电梯,礼貌起见,你会按下开门开关,然后等他进电梯;如果在电梯门关闭之前,又有人来了,你会继续开门;这样一直进行下去,你可能需要等待几分钟,最终没人进电梯了,才会关闭电梯门,然后上楼。

debounce作用,当调用动作触发一段时间后,才会执行该动作,若在这段时间间隔内又调用此动作则将重新计算时间间隔。

throttle假设你正在乘电梯上楼,当电梯门关闭之前发现有人也要乘电梯,礼貌起见,你会按下开门开关,然后等他进电梯;但是,你是个没耐心的人,你最多只会等待电梯停留一分钟;在这一分钟内,你会开门让别人进来,但是过了一分钟之后,你就会关门,让电梯上楼。

throttle作用 预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新的时间周期。

throttle跟debounce的最大不同就是,throttle会有一个阀值,当到达阀值的时候action必定会执行一次。

  • debounce:把触发非常频繁的事件合并成一次执行(如键盘事件,ajax,onsize,onscroll等事件)
  • throttle:设置一个阀值,在阀值内,把触发的事件合并成一次执行;当到达阀值,必定执行一次事件(如拖拽div,窗口滚动等)

debounce vs throttle相关推荐

  1. 白话debounce和throttle

    遇到的问题 在开发过程中会遇到频率很高的事件或者连续的事件,如果不进行性能的优化,就可能会出现页面卡顿的现象,比如: 鼠标事件:mousemove(拖曳)/mouseover(划过)/mouseWhe ...

  2. Debounce 和 Throttle 的原理及实现

    在处理诸如 resize.scroll.mousemove 和 keydown/keyup/keypress 等事件的时候,通常我们不希望这些事件太过频繁地触发,尤其是监听程序中涉及到大量的计算或者有 ...

  3. debounce和throttle

    性能和速度是程序的敌人,以致于每一个优秀的程序员都在孜孜不倦的提升软件的性能和速度,从而提升产品的用户体验. 下面介绍的是debounce和throttle,这两种技术能够改善程序的性能,它们非常相似 ...

  4. 浅析Debounce 与 Throttle的区别

    文章目录 概述 Debounce 瞬时响应or延迟响应 举例与注意事项 Throttle 定义 用法举例 参考文章 这两天在学习前端知识,在Vue的官方教程中看到了这两个概念,查阅相关资料后,做以下整 ...

  5. debounce 与throttle

    背景 开发过程中我们会遇到一些场景,事件频繁被触发,导致频繁的DOM操作等,导致UI卡顿 甚至浏览器崩溃等. 1.window对象的resize.scroll 事件 2.拖拽时的mousemove事件 ...

  6. 前端间隔查询的两种方法:Debounce和Throttle

    Debounce 中文名:防抖.在开始操作了之后,那么只有在一段 delay 时间段后不再有操作了,才执行操作. Throttle 中文名:节流.在开始操作之后,在 delay ms 内只会做一次.会 ...

  7. debounce与throttle区别

    在2011年,Twitter网站曾爆出一个问题:在主页往下滚动时,页面会变得缓慢以致没有响应.John Resig发表了一篇文章< a blog post about the problem&g ...

  8. debounce、throttle、useDebounce、useThrottle

    直接使用lodash的debounce会出现以下报错信息 This synthetic event is reused for performance reasons. If you're seein ...

  9. throttle与debounce的区别

    前几天看到一篇文章,我的公众号里也分享了<一次发现underscore源码bug的经历以及对学术界拿来主义的思考>具体文章详见,微信公众号: 文中讲了大家对throttle和debounc ...

最新文章

  1. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置
  2. 什么是SAAS 即软件即服务模式
  3. MWC2015中的LTE软基站(转自GeeFlex)
  4. 数据库-笛卡尔积-内连接
  5. 怎么才能在APP里实现移动端车牌识别功能?
  6. java编程二十_Java语言程序设计(二十)编程练习
  7. sql2008中打开“外围应用配置器”和启用 OpenRowSet 和 OpenDataSource函数
  8. android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法
  9. 企业中个别机械类制图软件无法打印的问题汇总
  10. pg_rewind 快速角色切换
  11. 计算机菜单界面无法缩小怎么办,如何解决Win10个性化设置最小化任务栏后不能弹出的问题?...
  12. # 8.19考试总结
  13. 模拟https类型的get,post请求时,碰到证书不信任,无法正常获取返回内容的异常
  14. cad编程c语言,基于C.NET的AutoCAD二次开发简版.pdf
  15. b、B、KB、MB、GB 之间的大小关系以及换算
  16. 理解Aode Air,理解RIA开发
  17. JavaScript中sort()对数组数字项函数function(a,b)返回值为a-b即为升序排列的细解
  18. 手机之家签名工具_自签工具更新 | 手机端自签,无需电脑,支持iOS 14 !
  19. cmake-自动识别新增子模块
  20. 静态网页制作(html+css)、css浮动,练习(网页布局),清除浮动

热门文章

  1. 计算机视觉在小机器人中应用,计算机视觉系统在工业机器人上的应用研究.doc...
  2. SetBkMode(TRANSPARENT)
  3. VSCode摸鱼教程---我们的口号是什么:摸鱼摸鱼!!!
  4. CNN做时间序列预测_关于时间序列预测的一些总结
  5. 情人节快乐 | 请收下这份礼物
  6. 【自动驾驶轨迹规划之路径规划总结】
  7. 2022年湖南省牙医执业医师考试考前模拟题
  8. 【STM32】Freemodbus流程解析函数解析详细
  9. 高中数学知识点归纳总结:基本初等函数、导数及其应用
  10. 专访 | 泽云智联:我们更看重AI与人的交互易用