函数节流和函数去斗是解决什么问题的:
大家都知道,人的眼睛能感知的最快反应速度是在0.1秒到0.4秒之间,所以0.1秒内的变化从视觉上来说是无意义的。而且如果涉及dom操作,或者网络操作会严重浪费资源,可能导致浏览器崩溃,或者服务器崩溃。例如一下场景:
(1) 浏览器滚动事件scroll
(2) 鼠标的点击事件 mouseup, mousedown,mousemove
(3) 键盘的keyup, keydown, input事件
(4) window的resize事件
以上四个场景中,事件都是连续触发的,如果也连续执行相应的回调函数,不但浪费资源,而且没有意义,还有可能导致浏览器或者服务器崩溃。 函数节流和函数去斗就是为了解决类似这样问题的。
函数节流:
设定一个时间周期,周期性的执行一个函数;
函数去斗:
设定一个延迟时间,延迟时间到了再去执行函数,如果在延迟时间内重复调用则重新计算延迟时间
代码:
<script>
// 防抖
function debounce(fn, wait) {
var timeout = null;
return function() {
if(timeout !== null) clearTimeout(timeout);
timeout = setTimeout(fn, wait);
}
}
var i=0
// 处理函数
function handle() {
i++
console.log(i);
}
// 滚动事件
window.addEventListener('scroll', debounce(handle, 1000));
</script>
函数节流(throttle)和函数去斗(debounce)
最新推荐文章于 2025-07-08 16:28:41 发布
本文探讨了函数节流和函数去抖技术,用于解决因频繁DOM操作和事件触发导致的性能问题,如滚动、点击、键盘输入等事件的高效管理,避免资源浪费和可能的系统崩溃。
266

被折叠的 条评论
为什么被折叠?



