防抖

  js的防抖就是比如一个水龙头坏了一直在滴水,我们为了节约用水,那么我们会想办法让他不再滴的那么快,这就是防抖。

 常见的比如scroll,onresize这些高频触发的情况。

js的防抖节流优化高频触发-LMLPHP

 这就是一个防抖函数利用闭包让作用域链的变量得以保存,每次获取结束时间与初始时间之差,如果大于我们设定的值就进行触发一次函数,然后设置初始时间为结束时间.

节流

节流就是比如关闭了水龙头后的最后水龙头还要再来一滴。也就是只在最后执行一次。

js的防抖节流优化高频触发-LMLPHP

主要利用了setTimeout来实现,滚动的过程中我们一直清楚定时器,只在最后停止滚动的时候触发一次

防抖加节流

那我们来组合一下:

js的防抖节流优化高频触发-LMLPHP

这就是一个防抖加节流的结合体。

08-27 19:35