js节流优化,防止方法被瞬间无限次调用

场景:
理论上onmousemove、vue 的watch变量、以及被其他端调用的方法,都有可能被频繁过度调用,从而瞬间产生过多方法调用,导致出现异常bug。
本人遇到挺多这种场景:
1、鼠标移动事件
2、websocket响应服务端的指令
都存在本地方法被瞬间过多调用的可能,这时候就需要用定时器做节流优化:


let _t = this;  //this指向vue
let oTimeout = null;
if(!_t.changeWait){
    _t.changeWait = true;
    oTimeout = setTimeout(()=>{
    	//这边写你自己的业务方法  
    	//_t.yourFunction();
        _t.changeWait = false;
    },50);
}else{
    clearTimeout(oTimeout);
}

这时候,以上方法不管瞬间被调用多少次,yourFunction(),都只会50毫秒响应一次,达到节流作用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值