回顾防抖与节流

101 阅读2分钟

这是我参与8月更文挑战的第25天,活动详情查看:8月更文挑战

写在前面

今天我们来学习下函数的防抖与节流,小伙伴们可以点击这个网址来体会一下防抖与节流的不同点~

正文

image.png 这里最上面一排代表正常的函数调用,即没有进行防抖与节流的函数;第二排是调用了防抖函数,可以看到,最后一次的调用才被执行了;第三排是调用了节流函数,可以看到,隔一段时间执行一次函数。

防抖

防抖的定义为:多次重复任务频繁调用,只有超过设定的触发间隔才会执行。即一个动作一直频繁触发只会执行最后一次。

常见用于页面中的input框,其中用户输入文字后我们需要请求接口来给用户提示联想词,如果用户输入后我们立刻请求会造成不必要的资源浪费,而使用防抖,我们即可等用户输入完后再请求,减轻了服务器压力,也能使业务正常运行。

节流

节流的定义为:多次重复任务频繁调用,会在指定间隔一直执行。即就会每隔一段时间就会执行一次。

常见用于监听页面滚动条的滚动,监听页面大小的变化后要执行某些操作。比如监听页面大小变化后,更改某个DOM元素的宽高,如果监听到就修改DOM,那么就会频繁造成重排和重绘,这时就要用到节流了,节流后比如300ms更新一次DOM,就无须频繁的重排重绘了,同时也能使业务正常运行。

总结

今天我们一起学习了函数的防抖与节流,感兴趣的小伙伴可以再深入研究一下lodash的节流防抖的源码,相信你一定会有收获的!

前端漫漫长途,我们都在路上,希望可以和小伙伴们一起交流,一起进步。持续更新ing.....