在使用web网页时,如果高频率的触发某一事件,比如拉滚动条,有可能造成页面抖动问题
防抖:在一定时间内,规定允许事件触发的次数
通过设置定时器,触发事件。在定时器首部,会首先清除之前的定时器,以达到规定时间内只能触发一次。如果此时上一次定时器还没有达到指定时间,又创建了新的定时器,之前的定时器就会被清除,从而不会执行上一次事件,达到效果。
节流:保证在规定时间内事件至少被触发一次
在防抖中,如果一直在上一次定时器未达到指定时间时触发下一次定时器,就永远不会触发事件。不能实现图片懒加载中不断加载图片或者发送ajax请求的效果。
因此节流中设置了mustRun属性,设置在超过规定时间后如果没有触发事件,必须触发,如果没有超过规定时间,重新设置定时器
达到了减少一定时间内触发事件的频率,但保证在一定时间内一定会触发一次事件。