开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3922|回复: 142
收起左侧

[易语言纯源码] 易的【防抖和节流】模块

  [复制链接]
结帖率:80% (8/10)
发表于 2024-11-4 00:01:16 | 显示全部楼层 |阅读模式   甘肃省兰州市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 荼泱 于 2024-11-4 19:34 编辑

防抖和节流模块

防抖函数(debounce)和节流(Throttle)是在工作中的日常使用经常出现,用于控制事件触发的频率,提升性能和用户体验。

这两个函数的目的是一致的:防止某个时间段内不断地触发某个事件,或防止不断地发送请求,造成性能消耗。

img

防抖(Debounce): 防抖是一种技术,通过延迟执行函数来控制事件在短时间内连续触发时的执行次数,使得只有等待一定的间隔时间后,事件最后一次触发后的操作才会执行。简而言之,当事件持续触发时,防抖会等待一段时间后,执行最后一次触发的操作

应用场景:

  • 处理搜索框的输入事件,避免每次输入都发送请求,而是等待用户输入完毕后再发送请求。
  • 处理窗口调整事件,避免频繁的重新渲染页面布局。
  • 处理按钮点击事件,避免用户误操作导致重复的请求或页面跳转。
  • 处理滚动事件,限制频繁触发的情况,例如在滚动加载场景中,只有在用户停止滚动一段时间后才加载内容。
  • 处理鼠标移动事件,避免频繁触发事件处理函数,尤其对于一些消耗性能较大的操作,可以控制处理的频率。

节流(Throttle): 节流是一种技术,通过控制在一定的时间间隔内只执行一次函数,来限制事件的触发次数。它确保在一个时间段内,事件处理函数被执行的最大频率为指定的间隔时间。

程序场景

我为大家写了一个简单的demo模仿了几个简单的场景
cb2ed0a5-b05e-402e-9bca-3e0b74f9ac0f.png

这里主要展示了获取用户的输入状态,和避免一些重复的事件

  • 防抖和节流函数的主要区别是什么?

    防抖函数(debounce)和节流函数(throttle)都是用于控制事件触发频率的优化技术,它们在实现方式和效果上有一些区别:

    1. 执行时机:
    • 防抖函数:在事件连续触发后的一个等待时间间隔后执行最后一次触发的操作。
    • 节流函数:在事件触发后的一个等待时间间隔内最多执行一次事件处理函数。

    触发次数:

    • 防抖函数:只在事件连续触发之后的等待时间间隔结束时执行一次。
    • 节流函数:在指定的时间间隔内,最多只执行一次事件处理函数。

    应用场景:

    • 防抖函数:适用于需要等待事件稳定后才执行操作的场景,例如搜索框的输入事件、窗口调整事件等。
    • 节流函数:适用于需要限制事件处理函数的执行频率,保持一定的执行稳定性的场景,例如滚动事件、拖拽事件等。

    行为特点:

    • 防抖函数:会等待一段时间,如果在这段时间内再次触发了事件,计时器会被重置,只有在时间间隔内没有新的事件触发时,才执行事件处理函数。
    • 节流函数:在指定的时间间隔内,无论事件触发多少次,只有一次事件处理函数执行。


游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 31好评 +3 精币 +34 收起 理由
3266167 + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~
guojiaobin + 1 感谢分享,很给力!~
mandxy + 1 感谢分享,很给力!~
pj小黑屋 + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
sundanming + 1 感谢分享,很给力!~
ewake + 1 感谢分享,很给力!~
ican8 + 1 感谢分享,很给力!~
jc520hll + 1 感谢分享,很给力!~
xhping + 1 感谢分享,很给力!~
罗大大 + 1 感谢分享,很给力!~
吃干饭的锅 + 1 + 2 支持开源~!感谢分享
huangdi9569 + 1 感谢分享,很给力!~
t176 + 1 感谢分享,很给力!~
vcx + 1 感谢分享,很给力!~
zjbin1989 + 1 感谢分享,很给力!~
bear22 + 1 感谢分享,很给力!~
文西哥 + 1 感谢分享,很给力!~
booms + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
扶南 + 1 感谢分享,很给力!~
黯丄辶 + 1 感谢分享,很给力!~
qiyuer + 1 感谢分享,很给力!~
聿聿 + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
坤坤大魔王 + 1 感谢分享,很给力!~
难解 + 1 + 1 支持开源~!感谢分享
小翁哥哥 + 2 涨知识了!!非常感谢
mgfz + 1 + 2 支持开源~!感谢分享

查看全部评分


本帖被以下淘专辑推荐:

结帖率:100% (1/1)

签到天数: 12 天

发表于 11 小时前 | 显示全部楼层   湖北省武汉市
节流函数:在指定的时间间隔内,无论事件触发多少次,只有一次事件处理函数执行。
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)

签到天数: 16 天

发表于 16 小时前 | 显示全部楼层   广东省广州市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:62% (8/13)

签到天数: 7 天

发表于 4 天前 | 显示全部楼层   湖北省襄阳市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 8 天

发表于 7 天前 | 显示全部楼层   江苏省苏州市
感谢大佬分享~
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 3 天

发表于 2024-11-12 23:08:50 | 显示全部楼层   山东省*
6666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 10 天

发表于 2024-11-11 13:42:27 | 显示全部楼层   广东省深圳市
        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:77% (66/86)

签到天数: 12 天

发表于 2024-11-11 11:35:46 | 显示全部楼层   陕西省西安市
        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 10 天

发表于 2024-11-9 23:15:40 | 显示全部楼层   江西省宜春市
这个厉害呀大佬      
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-11-9 23:07:32 | 显示全部楼层   福建省福州市
学无止境,看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表