防抖
防抖就是在用户输入内容后,一段时间后才会触发搜索事件
// 防抖函数 传入一个回调函数,传入等待多少毫秒触发
function debounce(callback,wait) {
let timer
return function (e) {
// 如果用户在wait毫秒内连续输入内容,则清空定时器
if (timer) {
clearTimeout(timer)
timer = null
}
timer= setTimeout(() => {
// 调用回调函数
callback()
}, wait)
}
}
节流
节流就是提交过一次表单后,用户在一定时间内不能重复提交
// 节流函数
function fn(callback, wait) {
let timer
return function (e) {
// 首次执行
if (!timer) {
callback(e)
timer = setTimeout(() => {
// 过wait毫秒后恢复初始值
timer = null
}, wait);
}
}
}