//节流
/**
* 某段时间内,无论触发多少次回调,只会响应第一次回调
* **/
function throttle(time, cb) {
//上次操作触发回调的时间
let last = 0;
//事件防抖闭包返回
return (params) => {
let now = new Date().getTime()
if (now - last >= time) {
cb(params)
//更新上次的操作时间
last = new Date().getTime()
}
}
}
//防抖
/**
* 某段时间内,无论触发多少次,只响应最后一次回调
*
* **/
function debounce(time, cb) {
//设置定时器
let timer = null
return (params) => {
//每当事件触发的时候,清理其定时器
if (timer) clearTimeout(timer)
//设定新的定时器
timer = setTimeout(() => cb(params), time)
}
}