前端--js基础(实现防抖和节流)

本文介绍了前端开发中防抖和节流的概念及其应用场景。防抖技术用于限制事件回调的执行,确保在一段时间内只响应最后一次触发,如防止表单多次提交。节流则限制事件触发的频率,确保在设定的时间间隔内只执行一次,适用于动画、输入验证和搜索过滤等场景。使用这两者能有效提升用户体验并减轻服务器负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要明确防抖和节流的概念和出现的背景:
1、两者的作用其实都是为了限制一些触发事件对应的回调函数的执行次数,一般都是一些持续触发行为,比如mousemove resize scroll
2、防抖:将一段时间内的多次事件触发转化为只响应最后一次触发,事件被触发n秒后再执行回调,在n秒内再次触发会重新开始计时(注意:第一次触发不能延迟执行);
防抖的关键在于如果你一直点一个按钮,那这个点击事件的回调函数除了第一次,以后永远不会触发
节流:减少一段时间内触发的频率,规定用户的行为在某个时间段只执行一次
节流的关键在于你点一个按钮,不管你点多少次,设定2秒触发一次就会隔2s触发对应点击事件的回调函数

其次需要知道两者的应用场景和使用之后的好处:
好处:提高用户体验,减轻后台压力
防抖应用场景举例:
1、按钮多次点击做表单提交(用防抖防止表单多次频繁提交)
btn.addEventListener(‘click’, debounce(submit, 5000), false);
function submit(a) {
console.log(‘提交表单’);
console.log(this);
}
2、input输入框的格式验证
节流应用场景举例:
1、动画相关场景,对resize touchmove mousemove scroll等触发的频繁度更高的事件会强制固定速率运行
2、对输入框做模糊搜索的时候可以等3-5个字符输入后再显示全部搜索的关键字,而不是输入一个就全部显示出来

function debounce(fn, time) {
   
    let timer = null;
    return function 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值