关于javascript:防抖

39次阅读

共计 360 个字符,预计需要花费 1 分钟才能阅读完成。

防抖目标是为了短时间内屡次触发事件, 但只执行一次

let timer  // 如果是 vue 的能够在 data 外面定义

function handleClick() {clearTimeout(timer)
  timer = setTimeout(() => {要执行的代码放在此处}, 300) // 300 毫秒反复点击, 只触发一次
}

场景二: 有时候点击删除屡次点击会呈现同个 id 删除前面的接口会报错

解决办法一: 是用下面的防抖

解决办法二:

let loading=false

function handleDelete(id) {if(loading) return
  loading = true
 // 上面写接口回调, 调完接口后将 loading 复原 false
}

二者办法的成果一样, 前者是最初次事件执行, 后者是第一次事件执行, 前面的事件锁住不执行

集体比拟喜爱第二种, 实际效果也更好

正文完
 0