You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
functionthrottle(func,wait){varresulTime=0;returnfunction(){varnew=+newDate();//时间戳var_this=this;vatargs=arguments;// now - resulTime只有大于wait才会执行,在wait时间内只执行一次if(now-resulTime>wait){func.apply(_this,args);resulTime=now;}}}
一. 函数防抖动(debounce)
在事件被触发 n 秒后再执行回调,如果在这 n 秒内又被触发,则重新计时。
使用场景
二.节流
规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。
节流的实现,有两种主流的实现方式,一种是使用时间戳,一种是设置定时器。
1.时间戳
第一种使用时间戳(第一次会立即执行,在 wait 时间内在执行是无效的)
2.设置定时器
第二种设置定时器(时间不会立即执行,在 wait 时间后开始执行)
总结两种方式的区别
第一种事件会立刻执行, 第二种事件会在 n 秒后第一次执行
使用场景
The text was updated successfully, but these errors were encountered: