前端手写(一)——手写防抖

x33g5p2x  于2022-03-28 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(196)

一、写在前面
防抖对于前端来说应该算是一个基础的东西,但是我还不会,今天总结一下。
二、防抖的用途
在固定时间内只能触发一次事件。
1、比如说我们在前端的输入框输入文本的时候,此时会存在一些提示,这些提示都是从服务器获取的,此时当我们每输入一个字符的时候,就向服务器发送一个请求,此时就会造成资源浪费。所以一般我们都设置当用户一秒不输入内容的时候,再向服务器发送来获取数据。
2、比如说我们获取服务器资源为图片资源,当页面需要展示很多的图片时,此时如果想要进行滑动(移动端),此时我们应该计算滑动的窗口的高度,如果当每加载完毕一个图片,就计算宽度,这样势必会造成资源浪费,所以我们判断当一秒钟之内没有任何资源加载的情况下,再去计算高度。
三、防抖函数的实现

function debound(fn, delay) {
      let timer = null
      return function (...args) {
        if (timer) {
          clearTimeout(timer)
        }
        timer = setTimeout(() => {
          fn.apply(this, args)
        }, delay)
      }
    }
    let func = debound(() => {
      console.log('hhhh')
    }, 1000)
    window.addEventListener('scroll', func)

相关文章

微信公众号

最新文章

更多