• js之防抖、节流函数


    防抖和节流是前端中常见的两个概念,通常用于前端的优化。

    防抖: 就是指触发事件后在n秒内函数只能执行一次,如果在n秒内又触发了事件,则会重新计算函数执行时间。(延时器 重新计时)
    节流: 就是指连续触发事件但是在设定的一段时间内中只执行一次函数。(定时器)

    DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Documenttitle>
      <script src="https://unpkg.com/axios/dist/axios.min.js">script>
    head>
    <body>
      <input type="text" class="ipt">
      <button class="btn">按钮button>
      <script>
    
        // 防抖:出发时间后,延迟一段时间,再执行回调,如果在此期间,事件又被触发,则重新计时
        // 核心:延时器   重新计时
        let timerId = null  // 声明一个延时器
        document.querySelector('.ipt').addEventListener('input', function (){
          let text = this.value
          clearTimeout(timerId) // 用户再输入,清掉延时器,重新开启一个新的
          timerId = setTimeout(() => {
            axios.get('http://www.liulongbin.top:3006/api/sug').then(res => {
              console.log(res);
            })
          }, 1000)
        })
    
    
        // 节流:单位时间内,频繁触发同一个操作,只触发一次。(定时器实现)
        // 当触发事件的时候,如果没有设置执行回调函数的定时器,就创建一个。当定时器中的回调函数被执行的时候, 将指向定时器引用的timeout设置为null,那么下一此再执行时,又会重新触发并设置一个定时器。
        let timer = null
        document.querySelector('.btn').addEventListener('click', function () {
          if(!timer) {
            timer = setTimeout(() => {
              timer = null
              axios.get('http://www.liulongbin.top:3006/api/sug').then(res => {
              console.log(res)
              })
            },1000)
          }
        })
    
    
      script>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    聚醋酸乙烯酯接枝聚苯乙烯PVAc-g-PSt微球/接枝-聚甲基丙烯酸甲酯表面(PS-acyl-Cl)的研究
    AD9371 官方例程
    详解C++静态多态和动态多态的区别
    acwing322消木块
    【VAE】
    文献知识点总结(1)《Boosting solar energy conversion with nanofluids》
    Django request.META.get()获取不到header头的原因分析
    CentOS 7搭建Yunzai-Bot原神机器人
    【Mysql进阶优化篇02】索引失效的10种情况及原理
    Python学习基础笔记十六——函数嵌套
  • 原文地址:https://blog.csdn.net/qq_41675812/article/details/126670706