const inp = document.querySelector('input');
//用户输入完毕才执行一次,发送http请求
function debounce(fn, ms) {
let time = null;
return function () {
if (time) {
clearTimeout(time);
}
time = setTimeout(() => {
fn()
}, ms);
}
}
inp.addEventListener("input", debounce(() => {
console.log('发送了请求');
},500))
当向输入框输入一个值时,就会向http发送请求,为了能在输入完才发送请求,需要使用一个定时器来延迟执行;给time传入一个定时器,在input输入完之前触发的定时器清空,只执行最后一个定时器
const btn = document.querySelector('button');
//点击多次按钮间隔多久只执行一次
function btnaa(fn1, ms1) {
let time = null;
return function () {
if (time) {
clearTimeout(time);
}
time = setTimeout(() => {
fn1();
}, ms1)
}
}
btn.onclick = btnaa(function () {
console.log('我被点击了');
}, 500);