防抖与节流(借用第三方插件lodash)

本文介绍了防抖和节流两种优化策略,如何避免浏览器卡顿。通过lodash插件实例演示如何在JavaScript中使用_.debounce和_.throttle来管理和限制函数的执行频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 正常情况下,当函数出发频率高时,每触发一次函数,就会触发回调,如果函数中有计算量较大的情况,浏览器就会出现卡顿现象。
  • 防抖:前面所有的触发都会取消,最后一次的执行在规定的时间之后才会触发     频繁触  =>  只执行一次
    (回调是最后一次触发的回调)
  • 节流:在规定的时间间隔范围内,不会触发多次回调,只有大于这个时间才会触发回调。频繁触发  => 少量触发
    (回调是第一次触发的回调)

lodash插件:

安装:npm i --save lodash
引用:

var debounce = require('lodash/debounce');
import throttle from 'lodash/throttle'

可参考官网:https://www.lodashjs.com/
Lodash 简介 | Lodash 中文文档 | Lodash 中文网

        lodash向外暴露的是_.+函数名()

        防抖: _.debounce(fn,waitTime,option)
lodash.debounce | Lodash 中文文档 | Lodash 中文网

        节流: _.throttle(fn,waitTime,option)
lodash.throttle | Lodash 中文文档 | Lodash 中文网

举个栗子

<template>
 <div>
  <button @click="aaa()">点击</button>
  <button @click="bbb()">打印</button>
 </div>
</template>

<script>
var debounce = require('lodash/debounce');    //两种引用均可,官网有更多引用可参考
import throttle from 'lodash/throttle'

 export default {
   methods: {
    aaa:debounce(function(){this.matte()},2000),    //防抖
    bbb:throttle(function(){this.matte()},2000,{'trailing': false}),    //节流
    //{ 'trailing': false }节流定时结束后会再次调用函数,这里关闭
    matte(){
      console.log('1111');
    }
   }    
 }
</script>

主页有原生防抖和节流的方法,可供参考 

(如有帮助,点赞加关注,追码不迷路)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值