前端性能优化
防抖
防抖:设定一个时间,两次操作的间隔时间超过设定时间,则执行。未超过设定时间则销毁上一次操作
const debounces = (func, delay = 1000) => {
if (window.timer) {
clearTimeout(window.timer);
}
window.timer = setTimeout(() => {
func();
}, delay);
};
节流
节流:设定一个间隔时间,间隔时间内无论触发多少次操作,都只执行一次操作(第一次操作)
const throttle = (func, delay = 500) => {
let timer = null;
return function () {
if (timer !== null) {
return;
}
timer = setTimeout(() => {
func();
timer = null;
}, delay);
};
};