防抖是延遲執行,而節流是間隔執行,函數節流即每隔一段時間就執行一次,實現原理為設置一個定時器,約定xx毫秒后執行事件,如果時間到了,那么執行函數並重置定時器,和防抖的區別在於,
防抖每次觸發事件都重置定時器,而節流在定時器到時間后再清空定時器
function throttle(func, wait) {
let timeout = null
return function() {
let context = this
let args = arguments
if (!timeout) {
timeout = setTimeout(() => {
timeout = null
func.apply(context, args)
}, wait)
}
}
}