码迷,mamicode.com
首页 > 其他好文 > 详细

防抖函数的简单使用。

时间:2019-10-29 11:37:58      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:deb   rev   time   clear   name   title   oninput   pre   initial   

<!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>

防抖函数的简单使用。

标签:deb   rev   time   clear   name   title   oninput   pre   initial   

原文地址:https://www.cnblogs.com/bride/p/11757360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!