首页 > 其他分享 >防抖和节流

防抖和节流

时间:2024-08-16 11:40:32浏览次数:7  
标签:function 防抖 aaa 节流 点击 log

  1. 概念:
    • 防抖(debounce):延迟一定时间执行函数。在指定的时间间隔内,无论触发多少次函数,只有最后一次函数会在间隔时间结束后执行。
    • 节流(throttle):控制函数执行的频率,在一定时间间隔内只执行一次函数。

    2. 应用:

    • 防抖:
      • 搜索框输入:只有用户停止输入后才执行搜索功能。
      • 按钮点击:防止误操作,用户连续点击只执行最后一次操作。
    • 节流:
      • 监听面板宽高改变事件:按照一定的频率执行函数。
      • 监听slider滑块变化事件:按照一定的频率执行函数。
      • 监听滚动条事件:按照一定的频率执行函数。

   3. 代码实现:

    • 防抖:
       1 // 防抖函数
       2 function debounce(fn, delay) {
       3     let timer;
       4     return function() {
       5         if(timer) clearTimeout(timer);
       6         timer = setTimeout(()=>{
       7            fn();
       8         }, delay);
       9     }
      10 }
      11 
      12 
      13 // 测试方法, 给id="aaa"的元素绑定点击事件,一直点击aaa元素,点击停止1s后,控制台输出1;
      14 function log(){
      15     console.log(1);
      16 }
      17 
      18 const newLog = debounce(log, 1000);
      19 
      20 document.getElementById("aaa").onclick=function(){
      21     newLog();
      22 };
    • 节流:
      // 节流函数
      function throttle(fn, limit) {
          let valid = true;
          return function() {
              if (!valid) return;
              valid = false;
              setTimeout(()=>{
                  fn();
                  valid = true;
              }, limit)
          }
      }
      
      // 测试防范,给id="aaa"的元素绑定点击事件,一直点击aaa元素,每隔1s,控制台输出1;
      function log(){
          console.log(1);
      }
      
      const newLog = throttle(log, 1000);
      
      document.getElementById("aaa").onclick=function(){
          newLog();
      };

       

标签:function,防抖,aaa,节流,点击,log
From: https://www.cnblogs.com/dadouF4/p/18362552

相关文章

  • java处理流 和节点流(在字节流和字符流中,又分为处理流和节点流)
    Java中的I/O流分为两类:字节流和字符流。字节流主要用于读写二进制数据,而字符流则主要用于读写文本数据。在字节流和字符流中,又分为处理流和节点流。节点流是直接连接到数据源或数据目的地的流,也就是说它们是直接操作文件的流,例如FileInputStream和FileOutputStream。节点流可以直......
  • Java基础入门18:File、IO 流1(方法递归、字符集、IO流-字节流)
    File和IO流FileFile是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)。IO流用于读写数据的(可以读写文件,或网络中的数据...)File代表文件IO流用来读写数据File创建对象创建File类的对象注意:File对象既可以代表文件、也可以代表文......
  • 前端性能优化---防抖与节流--02
    防抖(Debounce)和节流(Throttle)是两种常用的优化技术,主要用于控制高频率的事件触发,如滚动、输入、窗口调整大小等。本文将深入探讨防抖与节流的原理、实现方法及其应用场景。简单场景就是:输入框防抖,滚动节流 1.防抖(Debounce)防抖是一种在事件频繁触发时,通过延迟执行来减少事件触......
  • 字节流
    字节输出流(OutputStream)java.io.OutputStream是字节输出流的超类(父类),我们来看一下它定义的一些共性方法:1、close():关闭此输出流并释放与此流相关联的系统资源。2、flush():刷新此输出流并强制缓冲区的字节被写入到目的地。3、write(byte[]b):将b.length个字节从指定的......
  • 如果工资不再涨了,如何节流?
    我们来假设这样一种模型。如果你的工资不再增长,你将如何规划你的支出?把生活中花钱的地方整理出来,找到占比最大的类别,加以约束。因为占比越大,约束的成效越大(越省钱)。主要有1、房贷或租金或物业2、吃喝3、交通4、教育5、医疗6、旅游7、服装 理想状态下:房贷是大头,如果能降......
  • 性能优化之---防抖和节流
    在前端开发中,防抖(Debounce)和节流(Throttle)是两种常用的性能优化技术,主要用于控制高频率触发的事件,避免过多的计算或操作影响性能。一、防抖(Debounce)1.原理防抖的核心思想是将多次执行变为最后一次执行,即当持续触发某个事件时,只在事件停止触发后的指定时间内执行一次回调函数。......
  • 深入理解与高效操作Python中的字节流(bytes)与字节数组(bytearray)
    深入理解与高效操作Python中的字节流(bytes)与字节数组(bytearray)在Python编程中,处理字节流(bytes)和字节数组(bytearray)是常见的需求,尤其是在处理网络通信、文件I/O、以及需要直接与硬件交互的场景中。理解这两种数据类型的特性及它们之间的区别,并掌握高效的操作方法,对于提升程......
  • input输入框 防抖
    1什么是防抖防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始计时。为了避免用户在输入过程中,还没输入完,下面搜索框就一直频繁的在搜索,体验很差。2防抖解决方案首先需要把input的双向绑定v-mode拆......
  • 防抖和节流
    1.防抖,回城-执行完成区间计时的一次限时内,多次触发,只执行最后一次,并清空计时器。未计时完就一直清除计时器。思路:利用闭包,保存回调函数的计时器。判断计时器是否存在,是-清除原计时器。计时器内调用事件处理函数。注意:这里要搞清楚返回的匿名函数才是绑定的点击事件,而非d......
  • 低开开发笔记(八): 低代码编辑器实现撤销回退(命令模式,防抖处理)
    好家伙, 0.代码已开源https://github.com/Fattiger4399/ph_questionnaire-.git 1.事件触发我们先从事件的触发开始讲起大致上我们有两个思路可以选择1.监控用户行为2.监控数据变化 两种选择都会有较难处理的部分,这里我们先选第二个选项 关于监控数据,首......