防抖
• 原理:当事件被触发后,设定一个延迟时间delay,在这个延迟时间内,如果事件再次被触发,就会清除之前的定时器,重新开始计时。只有当在延迟时间内没有再次触发事件时,才会执行相应的函数。
• 应用场景:适用于用户输入等场景,如搜索框输入联想,用户在输入过程中,只有停止输入一段时间后,才会触发搜索请求,避免频繁请求服务器。
节流
• 原理:规定在一个单位时间内,只能触发一次函数。如果在这个时间间隔内多次触发事件,只有第一次或最后一次(根据实现方式)的事件会被处理,其余的事件会被忽略。
• 应用场景:常用于处理滚动、鼠标移动等连续触发的事件。比如监听页面滚动事件来实现懒加载,控制在一定时间内只加载一次图片,避免频繁操作导致性能问题。