防抖与节流

5,547 阅读1分钟

防抖

防抖就是多次变成一次

竟然是多次操作变成一次,在你每次操作之都会触发这个防抖函数,防抖函数里面首先先给一个定时器定值为null,return一个函数,判断是否有定时器,有的话就说名还在定时,就是还没执行完,就清除定时器,定时器里面执行的函数就是我们操作之后要执行的函数,没有定时器就创建一个

图片.png

防抖函数的根本还是根据定时器去完成的,创建一个防抖函数,两个参数,一个参数是一个函数是做防抖是为了什么,比如实时返回数据,当我们在input框上输入的时候,不加防抖的话打一个就会发送一次了,加了防抖就不会,第二个参数就是输入完之后多久发送

在防抖函数内部先定义一个定时器,先设为null,然后根据闭包return出一个函数,先判断timeout是否存在,存在的话先清除定时器,不是就创建一个定时器,参数跟防抖函数的参数一样的

节流:

节流是多次操作只执行最后一次,一定时间内执行一次

触发事件后执行里面的函数事件

图片.png

节流函数的区别就是,如果没有定时器就创建一个定时器,在定时器里面执行操作,并且最后要把定时器置为null