在工作当中很容易就碰见要防抖和节流的地方,像一些搜索的地方 ,像下拉一定高度进行数据请求。
// 防抖 单位时间内只发送一次请求
function fn( fn1 ,day = 1000 ) {
let timer = null
return function () {
clearTimeout(timer)
timer = setTimeout( {
fn1.apply( this, arugments)
},day)
}
}
// 节流 单位时间内有频率的发送请求
function fn ( fn1 , day = 1000 ) {
let flag = true
return function () {
if ( !flag ) return
flag = false
timer = setTimeout ({
flag = true
fn1.apply( this, arugments)
},day)
}
}
自己随便写的 , 有什么不对的请指教。