防抖功能直接上js代码
let timer; // 声明一个计时器变量// 点击抽奖事件
function even() {// 检查计时器是否存在,如果存在则清除if (timer) {clearTimeout(timer);}// 设定一个时间间隔,比如500毫秒const interval = 500;// 设定一个定时器,在指定时间间隔后执行事件timer = setTimeout(function() {circulation(); // 执行抽奖事件}, interval);
}
这段代码会在点击抽奖事件发生时启动一个计时器。如果在500毫秒内再次点击抽奖按钮,之前的计时器会被清除,计时器重新开始计时,确保500毫秒内只执行一次抽奖事件。
节流功能直接上代码
let canExecute = true; // 声明一个变量来控制是否可以执行事件// 点击抽奖事件
function even() {// 如果当前不能执行事件,则直接返回if (!canExecute) {return;}// 设置canExecute为false,表示当前不能执行事件canExecute = false;// 设定一个时间间隔,比如500毫秒const interval = 500;circulation(); // 执行抽奖事件// 在指定时间间隔后,将canExecute设置为true,表示可以再次执行事件setTimeout(function() {canExecute = true;}, interval);
}
这段代码会在点击抽奖事件发生时执行抽奖事件,然后设置一个500毫秒的时间间隔,之后再次点击抽奖按钮时会在500毫秒内直接返回,而不执行事件。在500毫秒后,才会重新设置canExecute为true,表示可以再次执行事件。这种方式可以确保事件在一定时间间隔内只执行一次。
希望可以帮到大家;