JS防抖其实也是用来提升网页性能的一种技术写法
如果你想直接看源码的话直接划到最后面!(还是建议一步一步的操作来)
防抖就是指当用户触发某个操作时,如果在指定的时间内再次触发该操作,那么就清除前面触发的操作,直到用户操作之后并且在指定的时间内不再操作我们再处理用户的请求。
比如说:点击按钮执行搜索操作的时候,如果用户一秒内重复点击按钮,这个时候由于重复提交,页面就会变卡。
1.第一步:先把按钮的点击事件绑定上去。点击按钮控制台会数据 ‘11111’,这个时候重复点击按钮还是会重复调用按钮的点击事件。
html部分
<button type="button" id="btn">提 交</button>
js部分
//获取 按钮
let btn = document.querySelector('#btn');
// 给按钮添加事件监听 palyMoney方法
btn.addEventListener('click',palyMoney)
function palyMoney() {
console.log('11111')
}
2.第二步:开始设置防抖设置
js部分
//获取 按钮
let btn = document.querySelector('#btn');
// 提交方法
function palyMoney() {
console.log('11111')
}
// 防抖函数
function buttonClick(func){
func();
}
// 给按钮添加事件监听 buttonClick方法
btn.addEventListener('click',buttonClick(palyMoney))
这个时候打开页面的时候发现 直接就运行了 palyMoney() 这个方法,
这个就是防抖的第一个难点
这里就需要使用到闭包来处理。防止给按钮添加时间监听的时候 就调用了palyMoney方法。
js部分
//获取 按钮
let btn = document.querySelector('#btn');
// 提交方法
function palyMoney() {
console.log('11111')
}
// 防抖函数
function buttonClick(func){
// 使用闭包来防止 打开页面的时候就运行palyMoney 方法
return function(){
func();
}
}
// 给按钮添加事件监听 buttonClick方法
btn.addEventListener