函数防抖VS函数节流
2024-10-21 06:19:49
(1)函数防抖debounce
函数触发停止一段时间后(期间不能再触发 debounce,否则将重新计时),再执行回调函数
机制:
防抖函数主要利用定时器的延迟执行特性,根据是否有定时器在等待执行:
- 触发了一个事件后:如果有一个定时任务待执行,就清除定时器,重新计时。
- 如果没有任务待执行,就定时执行这个事件。
#应用场景:
- 表单的连续点击,防止重复提交。比如重复发送一篇文章。
- 类百度的搜索,连续输入等输入停止后再搜索。
- 一直拖动浏览器窗口,只想触发一次事件等。
(2)函数节流throttle
规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行(单位时间内有事件被多次触发则,只生效一次)。
节流函数根据时间差是否超过给定时间(gapTime)来决定是否触发回调。
应用场景:
- 自动保存草稿功能,当用户在输入的时候(一直触发事件),单位时间内只保存一次草稿。
- 游戏中的刷新率
(3)对比
作用和本质:
防抖函数和节流函数主要解决的问题是:防止函数”短时间“的重复执行。
它们本质上是:在时间轴上控制函数的执行次数。
#应用实例,需要加个括号:
因为返回debounce
和throttle
返回的是一个函数,所以如果不是自动执行的事件监听回调,我们应该再后面加个()
,执行返回的闭包函数。
.
最新文章
- 添加APNS通知
- Stream 和 byte[] 之间的转换
- Python的第三天
- IOS高德地图逆地理编码定位+网络判断
- django自带wsgi server vs 部署uwsgi+nginx后的性能对比
- CF700C (枚举+tarjan)
- 谈谈作为一个菜B的培训感受
- laravel观察者模式
- MFC入门教程01 Windows编程基础
- jquery实现点击进行跳转后,改点击的元素添加选中的效果
- Jmeter Boss系统login
- TDD最佳实践
- 10/03/2019 PCL-1.8.1 Ubuntu 16.04 boost 1.69 CUDA 9.0 installation
- es6 语法 (symbol)
- centos7【防火墙】常用规则
- 2018SDIBT_国庆个人第四场
- JavaBean递归拷贝工具类Dozer
- Java文件复制删除操作合集
- ASP------字符串与HTML格式相互转换
- MyBatis 延迟加载 加载时机
热门文章
- unordered_map / HashTable 的负载因子是什么意思
- VARIANT、 _variant_t、CComVariant、COleVariant、CDBVariant
- vue click.stop阻止点击事件继续传播
- 安装Django、Nginx和uWSGI
- d3.js 入门指南
- WPF特点
- 关于ConfigurationSection自定义config的简单使用
- Python操作MySQL的一些坑
- ProcessExplorer 工具下载
- 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)