简单实现javascript函数防抖

简单实现javascript函数防抖

首先我们需要先了解下函数防抖的概念和实现意义

什么是防抖?

防抖指的是:防止用户在短时间内,大量,高频的重复触发事件,发送大量请求,影响用户体验,给服务器带来负担。

怎么才能实现防抖?

在用户触发时间过于频繁时,只执行最后一次触发的事件。

防抖的运用场景

  1. 用户注册;
  2. 提交搜索内容等数据交互场景。

让我们来都通过一个小案例来具体了解下吧。

在这里插入图片描述
需求:点击add按钮,下方显示数字区域从1开始累加。但是一次点击过程只加1。

防抖前

<body>
    <h1>JavaScript函数防抖</h1>

    <input type="button" id="btn" value="add按钮">
    <h2 id="number">显示数字</h2>
</body>
<script>
    let _btn = document.querySelector('#btn');
    let _number = document.querySelector('#number');

    let num = 0;
    let timer;

    _btn.onclick =  ()=> {
    console.log(num);
    _number.innerHTML = ++num;
    }
</script>

在这里插入图片描述

防抖后

在这里插入图片描述
实现代码:

_btn.onclick = () => {
   console.log(num);

    if (timer != null) {
    //如果触发前存在定时器,则将其清除 重置回初始化的状态
    clearTimeout(timer);
     }
    timer = setTimeout(() => {
     _number.innerHTML = ++num;
	}, 500);
	
 };

只需使用定时器就能实现,通过设定的时间来控制重复执行的时间。因为演示使用点击事件的缘故,展现起来像是一串操作后执行最后一次,实际的运用中完全由定时器执行时间控制。

这里是万物之恋,下次再见了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值