1.防抖(debounce)与节流(throttle)
- 什么是防抖?
- 什么是节流?
- loadash:.debounce与.thorttle的使用
- 手写一个防抖方法
- 手写一个节流方法
function throttle(func, wait){
let prev, timer
return function fn(){
let curr = Date.now()
let diff = curr - prev
//如果是第一次或者是间隔的时间比设定的时间长
if(!prev || diff >= wait){
//那么就直接执行
func()
prev = curr
}else if(diff < wait){ //如果间隔的时间比设定的时间短,那么就等到设定的时间再执行
window.clearInterval(timer) //每次之前都将定时器打破
timer = setTimeout(fn, wait - diff)
}
}
}
防抖案例
文本框输入文字,1s后给出提示框
节流案例
初始化与响应式echarts表格生成