防抖和节流是在JavaScript中常用的技术,用于控制事件的触发频率。在某些场景下,当用户频繁触发某个事件时,我们希望能够限制事件的触发次数,以减少性能消耗和提升用户体验。本文将介绍防抖和节流的概念,并提供相应的源代码实现。
防抖(Debounce)的概念是指当一个事件连续触发时,只执行最后一次触发的事件。常见的应用场景包括搜索框输入联想、窗口大小调整等。防抖的关键是设置一个等待时间,在该时间段内如果事件再次触发,则重新计时。只有在等待时间结束后,才会执行相应的操作。
下面是一个JavaScript中实现防抖的例子:
function debounce(func, delay) {
let timeoutId