节流函数和防抖函数
防抖:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
防抖函数分为非立即执行版和立即执行版。
非立即执行版的意思是触发事件后函数不会立即执行,而是在 n 秒后执行,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
立即执行版的意思是触发事件后函数会立即执行,然后 n 秒内不触发事件才能继续执行函数的效果。
缺点:如果事件在规定的时间间隔内被不断的触发,则调用方法会被不断的延迟
节流:高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率
节流,一般有两种方式可以实现,分别是时间戳版和定时器版。
时间戳版:在持续触发事件的过程中,函数会立即执行,并且每 1s 执行一次。
定时器版:在持续触发事件的过程中,函数不会立即执行,并且每 1s 执行一次,在停止触发事件后,函数还会再执行一次。
我们也可以将时间戳版和定时器版的节流函数结合起来,实现双剑合璧版的节流函数
节流和防抖函数的区别:函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。 比如在页面的无限加载场景下,我们需要用户在滚动页面时,每隔一段时间发一次 Ajax 请求,而不是在用户停下滚动页面操作时才去请求数据。这样的场景,就适合用节流技术来实现。
本文深入解析节流和防抖函数的工作原理,比较两者在场景应用上的区别,如无限滚动加载的优化,并介绍实现这两种技术的不同方法。
907

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



