前端性能优化-节流
节流:如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。将多次执行变成每隔一段时间执行
节流函数的适⽤场景:
- 拖拽场景:固定时间内只执⾏⼀次,防⽌超⾼频次触发位置变动
- 缩放场景:监控浏览器resize
- 动画场景:避免短时间内多次触发动画引起性能问题
防抖函数代码如下:
function throttle (fn, delay) {
let timeout = null
return function () {
if (!timeout) {
//只有当前定时器执行完后才进行下一次函数执行
timeout = setTimeout(() => {
fn.apply(this, arguments)
timeout = null
}, delay)
}
}
}
浙公网安备 33010602011771号