var num = 1
var content = document.getElementById('content')
function count() {
content.innerHTML = num++
}
//防抖debounce
//让输入完毕后过两秒再查询(延迟执行)
function debounce(func, wait) {
var timeout //定时器
return function () {
if (timeout) clearTimeout(timeout) //取消之前的任务
timeout = setTimeout(function () {
func.apply(this) //执行func函数
}, wait)
}
}
//让输入完毕立刻查询,过两秒才能再次查询(立刻执行)
function debounce(func, wait) {
var timeout
return function () {
//第一次执行timeout为空
if (timeout) clearTimeout(timeout) //取消之前的任务
var callNow = !timeout //类型转换 将callNow赋值为真
timeout = setTimeout(() => { //增加一个定时器
timeout = null //清空的定时器句柄
}, wait)
if (callNow) func.apply(this) //第一次执行
}
}
content.onmousemove = debounce(count, 2000)
前端函数节流与防抖动?
最新推荐文章于 2024-06-05 20:00:00 发布