节流和防抖

节流(在一定时间内多次触发也只会执行一次事件)

1
2
3
4
5
6
7
8
9
10
11
function throttling(delay: number): Function {
let timeout: any | null;
return function (fun: Function) {
if (!timeout) {
timeout = setTimeout(() => {
fun();
timeout = null;
}, delay);
}
};
};

防抖(在一定时间内没有被再次触发则会执行一次事件)

1
2
3
4
5
6
7
8
9
function debounce(delay: number): Function {
let timer: number | any;
return function (fun: Function) {
clearTimeout(timer);
timer = setTimeout(() => {
fun();
}, delay);
};
};