一个跨行前端的小白菜随笔 —— 节流函数
还是之前的🌰,我们希望在缩放浏览器窗口时,能够保持平均每1S的频率执行事件调用。(即保证在1S的时间里,只执行一次操作)
mounted() {
window.addEventListener('resize',()=>{
console.log('111');
})
}
这里也是需要使用定时器,可以这样来设计:
缩放浏览器会执行resize事件,当第一次执行resize时,设置好定时1S后执行回调。在这1S内,如果多次触发resize事件,都不执行回调操作。当1S之后,还有resize事件触发,则再次设定1S,执行回调操作
// 节流throttle代码(定时器): function throttle(func, delay) { let timer = null; return function() { let context = this; let args = arguments; if (!timer) { timer = setTimeout(function() { func.apply(context, args); timer = null; }, delay); } } } function handle() { console.log(Math.random()); } window.addEventListener('resize', throttle(handle, 1000));

浙公网安备 33010602011771号