防抖函数的简单使用。

Posted bride

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防抖函数的简单使用。相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input id="input" type="text">
<script>
var input =document.getElementById(‘input‘)
input.oninput = debounce( () => console.log(‘fn 节流执行了‘), 1000);

function debounce(fn, wait) {
let previous =0, // 上一次执行的时间
timer=null // 定时器
return (...args)=>{
// 获取当前时间
let now=new Date()
// 如果小于,则为本次触发操作设立一个新的定时器
// 定时器时间结束后执行函数 fn
if(now-previous<wait){
if(timer){clearTimeout(timer)}
timer=setTimeout(()=>{
previous=now;
fn.apply(this, args)
},wait)
}else{
// 第一次触发或者间隔时间大于等待时间,执行回调函数
previous=now
fn.apply(this.args)
}
}
}
</script>
</body>
</html>

以上是关于防抖函数的简单使用。的主要内容,如果未能解决你的问题,请参考以下文章

【js】简单理解节流与防抖,搜索框的场景

浅析函数防抖与函数节流

手写防抖、节流 hook(ts版)

用lodash使用防抖节流

vue 简单实现函数防抖(debounce)和节流(throttle)

JS防抖和节流