首页 > 其他分享 >函数防抖

函数防抖

时间:2023-04-13 09:01:10浏览次数:31  
标签:function 防抖 函数 打印 trimid value var

<!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>Document</title>
<!-- 

     -->
</head>
<body>
    <input type="text" class="text">

    <script>
 
    // //获取元素
    // var int = document.querySelector('.text')
    // //打印value下面的值,但是会造成一个问题,当输入一个字,就会打印一个字,如果想要实现只打印最后的value值,如下
    // int.addEventListener('input',function(){
    //     console.log(this.value)
    // })

/* 
为了解决上述问题,使用下面方法,只打印最后一个value值
多行注释快捷键:shift+alt+a
逻辑:
注册事件,判断当前input框被操作后走回调函数,回调函数在通过函数进行打印
回调函数两个实参,第一个值,打印value值;第二个值,等待的时间
函数两个形参来自回调函数的两个实参
trimid =走该函数时,清空trimid,在将新的value给trimid(这样每次都是获取最后一次)

让函数调用this
获取函数所有参数

什么是函数防抖:比如:输入一个字,他会一直记录!会影响性能,所以使用以上方法解决函数防抖
 */
     function wsx(fn,fi){
        var trimid;
        return function(){
            clearTimeout(trimid)
            //调用外面的this = input
            var curthis = this;
            //获取所有函数的参数
            var sli = Array.prototype.slice.call(arguments)
            
            trimid = setTimeout(function(){
                //让fn指向这个this
                fn.call(curthis,sli)
            },fi)
        }
     }
        
        var hai = wsx(function(e){
            console.log(e,this.value+'测试')
        },1000)

        //获取到的元素
       var int = document.querySelector('.text');
       int.addEventListener('input',hai)
    </script>
</body>
</html>

  

<!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>Document</title> <!--
     --> </head> <body>     <input type="text" class="text">
    <script>       // //获取元素     // var int = document.querySelector('.text')     // //打印value下面的值,但是会造成一个问题,当输入一个字,就会打印一个字,如果想要实现只打印最后的value值,如下     // int.addEventListener('input',function(){     //     console.log(this.value)     // })
/* 为了解决上述问题,使用下面方法,只打印最后一个value值 多行注释快捷键:shift+alt+a 逻辑: 注册事件,判断当前input框被操作后走回调函数,回调函数在通过函数进行打印 回调函数两个实参,第一个值,打印value值;第二个值,等待的时间 函数两个形参来自回调函数的两个实参 trimid =走该函数时,清空trimid,在将新的value给trimid(这样每次都是获取最后一次)
让函数调用this 获取函数所有参数
什么是函数防抖:比如:输入一个字,他会一直记录!会影响性能,所以使用以上方法解决函数防抖  */      function wsx(fn,fi){         var trimid;         return function(){             clearTimeout(trimid)             //调用外面的this = input             var curthis = this;             //获取所有函数的参数             var sli = Array.prototype.slice.call(arguments)                         trimid = setTimeout(function(){                 //让fn指向这个this                 fn.call(curthis,sli)             },fi)         }      }                 var hai = wsx(function(e){             console.log(e,this.value+'测试')         },1000)
        //获取到的元素        var int = document.querySelector('.text');        int.addEventListener('input',hai)     </script> </body> </html>

标签:function,防抖,函数,打印,trimid,value,var
From: https://www.cnblogs.com/wsx123/p/17312117.html

相关文章

  • 虚函数
    ```#include<iostream>usingnamespacestd; classBaseClass{public:   virtualvoidfn1(){       cout<<"B1"<<endl;   }   voidfn2(){       cout<<"B2"<<endl;   }};classDerived......
  • 4月12日复习,仿函数,非类型模板参数,模板的特化
    仿函数的学习:之前在实现优先级队列时在模板那里多传一个参数可以实现直接堆优先级的调整,因为设置大数优先还是小数优先,只是建大堆还是建小堆和相关算法的问题,而大堆算法与小堆算法的不同只是大于小于号的不同,若是仅仅因为这个就重新写一个相似的代码未免有点太冗余了,所以可以引入......
  • 线性筛,整除分块,欧拉函数与莫比乌斯反演
    埃氏筛法说到筛质数,就不得不提到大名鼎鼎的埃氏筛法了思想非常简单,就是对于每一个素数pri[i],我们都把它的倍数筛去,譬如对于素数2来说,我们就把\(2*2,2*3,2*4,2*5....2*n\)的数全部筛掉代码voidzhishu(intn){ for(inti=2;i<=n;i++){ if(p[i]==0) for(intj=i*2;......
  • 观察基类与派生类的构造函数与析构函数的调用顺序
    一、设计思路1.定义一个哺乳动物类Mammal,2.派生出一个狗类Dog,3.定义一个dog类的对象,通过代码的执行顺序来判断观察观察基类与派生类的构造函数与析构函数的调用顺序。二、程序流程图。   三、代码实现。#pragmaonceclassMammal{public: Mammal(); ~Mammal();}......
  • 函数
    1.编写一个求x的n次方都函数。#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){ doublex; inta; cin>>x>>a; power(x,a); cout<<power(x,a)<<endl; return0;}doublepower(doublex,intn){ doubley=1.0; while(n-......
  • 构造函数与默认构造函数
    钟表类#include<iostream>usingnamespacestd;classclock{public:clock(inth,intm,ints);clock();voidsettime(inth,intm,ints);voidshowtime();private: inthour,minute,second;};clock::clock(inth,intm,ints):hour(h),minute(m),second(s){}clock::cloc......
  • 重构——搬移语句到调用者(Move Statements to Callers),其反向重构:搬移语句到函数(213)
    8.4搬移语句到调用者(MoveStatementstoCallers)反向重构:搬移语句到函数(213)emitPhotoData(outStream,person.photo);functionemitPhotoData(outStream,photo){outStream.write(`<p>title:${photo.title}</p>\n`);outStream.write(`<p>location:${photo......
  • Python的函数的缺省值参数(空列表)之坑
    Fromhttps://www.jianshu.com/p/9f899d829562 defadd(x,lst=[]):ifnot(xinlst):lst.append(x)returnlstlist1=add(1)print(list1)list2=add(2)print(list2)list3=add(3,[11,12,13,14])print(list3)list4=add(4)print(list4......
  • SQL coalesce, if null (), nvl 函数
    1.coalesce函数coalesce(expr1,expr2,...)-Returnsthefirstnon-nullargumentifexists.Otherwise,null.返回所有参数中第一个非null的,若均为null,返回null。SELECTcoalesce(NULL,NULL,1);SELECTcoalesce(NULL,NULL);2.nvl函数nvl(expr1,expr2)-Retur......
  • JS中的函数防抖
    一、什么是函数防抖概念:函数防抖(debounce),就是指触发事件后,在n秒内函数只能执行一次,如果触发事件后在n秒内又触发了事件,则会重新计算函数延执行时间。举个栗子,坐电梯的时候,如果电梯检测到有人进来(触发事件),就会多等待10秒,此时如果又有人进来(10秒之内重复触发事件),那么电梯就......