在开发中有时候我们有一个点击请求事件,如果操作者一直快速点击就会一直请求,造成资源浪费为此我们一般要进行处理防止用户频繁点击
一般处理频繁点击有:
1.显示隐藏
2.通过时间间隔进行判断
3.使用节流处理
此次使用第三种如果想了解前两种可进行搜索查询
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="">
</head>
<body>
<button class="btn1" type="button">点击</button>
<script>
window.onload = function() {
var isFrist = true // 是不是第一次点击
function delBtn() {
console.log('用户处理事件')
}
var throttle = function(method, context){
clearTimeout(method.tId);
method.tId = setTimeout(function(){
method.call(context);
}, 300);
}
let btnDom = document.querySelector('.btn1')
btnDom.οnclick=function() {
if (isFrist) {
// 如果是第一次点击直接执行相关请求
delBtn()
isFrist = false
}else {
// 如果不是第一次点击进行节流
throttle(delBtn)
}
}
}
</script>
</body>
</html>
节流的主要方法就是throttle这个函数每隔300毫秒执行一次delBtn这个方法,这样我们就处理了用户频繁点击的问题