作为一个前端开发人员,在开发过程中必不可少的就是考虑性能优化,其中减少发送请求就是一个方面。说到减少请求,就不得不提到防抖和节流了。
1.什么是防抖和节流
1.防抖
我们经常会在一些浏览器或者app中发现这样一种情况,我们在一个输入框中输入我们想要搜索的内容,然后下面就会有提示的内容,但是当我们输入得很快得时候,下面却不会有提示,只有当我们输入完了之后,才会有提示,这里就运用了防抖。防抖就是当我们高频率地触发一个事件时,只去执行最后一个触发的事件,这样可以大大减少发起请求的次数。
2.节流
节流的作用也是减少高频事件的触发,不同于防抖的是,节流是在一定时间内只执行规定次数的事件,像某些官网做一些抢购的活动,为了防止用户在一个时间段内疯狂点击抢购按钮从而一直触发网络请求,通常会把这个抢购按钮做成节流的。
2.手写防抖和节流
防抖和节流主要就是对定时器和闭包的使用,
防抖
<body>
<input class="ipt" type="text">
<script>
function debounce() {
//声明一个定时器timer
let timer = null
return function () {
//判断定时器是否已经存在