防抖,防止表单重复提交 vue js

本文介绍了JavaScript中的事件防抖(debounce)技术,并通过一个具体的例子展示了如何在页面中引入util.js库,利用debounce函数优化El-Button的提交事件,避免在短时间内多次触发业务代码,从而提高页面性能。示例中设置了800ms的延迟时间,并在首次点击时立即执行。
摘要由CSDN通过智能技术生成

util.js

export const debounce = function (func, wait, immediate) {
  var timer = null
  var result = null
  return function proxy () { // 保存的就是事件对象
    var params = [].slice.call(arguments)
    var self = this
    var callNow = !timer && immediate
    // 点一次点击都设置一次定时间,间隔WAIT这么久执行handle:
    if (timer) {
      clearTimeout(timer)
      timer = null
    }
    timer = setTimeout(function() {
      // 清楚最后一次
      clearTimeout(timer)
      timer = null
      if (!immediate) {
        result = func.apply(self, params)
      }
    }, wait)
    // 符合第一次立即执行[触发在开始的边界]
    if (callNow) {
      result = func.apply(self, params)
    }
    return result
  }
}

页面引入

import { debounce } from '@/utils/util'
<el-button  @click="submit" class="submit-btn" type="danger" size="small">确认提交</el-button>
methods: {
  submit: debounce( function () {
  // 业务代码
  } , 800, true)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值