-
防抖:动作绑定事件,动作发生后一定时间后触发事件,在这段时间内,如果该动作又发生,则重新等待一定时间再触发事件。
let timeout = null
export function debounce(fn, wait = 500) {
if (timeout !== null) clearTimeout(timeout)
timeout = setTimeout(()=>{fn()}, wait)
}
-
节流: 动作绑定事件,动作发生后一段时间后触发事件,在这段时间内,如果动作又发生,则无视该动作,直到事件执行完后,才能重新触发
let throttleStatus = false
export function throttle(fn, wait = 500) {
if (throttleStatus) return
throttleStatus = true
fn()
// setTimeout(fn, wait)
setTimeout(() => {
throttleStatus = false
}, wait)
}
import {debounce,throttle} from '@/utils';
***
fn(){
}
debounce(this.fn,1000)
throttle(this.fn)