【 防抖与节流】

防抖与节流

应用场景

当事件触发非常频繁时,且每一次触发,回调函数都要去执行,如果时间很短,而回调函数内部有计算,那么很可能出现浏览器卡顿现象,用户行为过快,浏览器反应不过来,这时候就需要使用防抖和节流。

防抖

前面的所有触发都被取消,最后一次执行在规定时间之后才会触发,也就是说如果连续快速的触发,最终只会执行一次。所以,我们可以借助lodash插件来实现。使用场景:如input框,我们更希望的是当文字全部输入完后再执行相应函数。
Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。里面封装函数的防抖与节流的业务(闭包+延迟器)

  1. 下载:附上官网(https://www.lodashjs.com/)
$ npm i -g npm
$ npm i --save lodash
  1. 引入lodash:lodash的全部功能引入(但是我们一般最好是按需引入)
    <script src="lodash.js"></script>
  2. lodash函数库对外暴露_函数;
  3. input框防抖演示:
  let input =document.querySelector('input')
  let result=_.debounce  (function(){
        console.log('在一秒后ajax发请求')
    },1000)
    result();

节流

在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发
使用_.throttle函数。用法:
_.throttle(func, [wait=0], [options=])
1.按需引入,它直接是一个函数,且默认暴露(就不用加{ }了)
import throttle from 'lodash/throttle';
2.应用

changeIndex:throttle(function (index) {
      this.currentIndex=index  
    },50),

3.注意
别用箭头函数,因为可能会出现上下文this的问题。
(箭头函数没有自己的this,它的this是继承而来,默认指向在定义它时所处的对象,
- 这句话摘自博客https://blog.youkuaiyun.com/xu4321083/article/details/79753800

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值