节流笔记啊

11.节流

1、 定义:

当持续触发事件的时候,保证一段时间内,只调用一次处理函数。 一段事件内,只做一件事

在n秒内多次点击,只有一次生效,只请求一次接口

2、 代码实现
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>节流函数</title>
</head>
<body>
    <button id="button">点击</button>
    <script type="text/javascript">


        function thro(func, wait){
          // 在一定时间内,点击多次,一百次,也只执行一次
          let timer
          return function (){
            if (!timer){
              // set 不执行,如果timer有值(说明有正在执行的函数),就不执行了
              timer = setTimeout(function (){
                func()
                // 当本次函数执行完成后,再次点击需要再次触发,所以需要将timer 设置为空
                timer = null
              }, wait)
            }
          }
        }

        function handle(){
          console.log(Math.random());
        }

        // 获取点击事件的
        var btn = document.getElementById('button')
        btn.onclick = thro(handle, 2000)
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值