一、写在前面
防抖对于前端来说应该算是一个基础的东西,但是我还不会,今天总结一下。
二、防抖的用途
在固定时间内只能触发一次事件。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)
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47450807/article/details/123764139
内容来源于网络,如有侵权,请联系作者删除!