防抖和节流是JavaScript中常用的性能优化技术,用于限制函数的执行频率,特别是在处理用户输入、滚动事件和网络请求等场景中非常有用。本文将详细介绍防抖和节流的概念,并提供相应的源代码示例。
一、防抖(Debounce)
防抖的原理是在函数被连续调用时,只有在指定的时间间隔内没有再次调用时才执行该函数。换句话说,如果在指定时间内函数被多次调用,只有最后一次调用会生效。防抖常用于限制处理频繁触发的事件,例如输入框输入内容时的自动搜索建议功能。
下面是一个基本的防抖函数的实现示例:
function debounce(func, delay) {
let timeoutId;