实现在 1 秒内仅执行一次 _sendBusinessCircle()
函数,按最后一次计算时间,您可以使用 JavaScript 中的 setTimeout
函数结合防抖(debounce)技术
export default {
name: "WriteComment",
data() {
return {
debounceTimer: null, // 添加一个用于防抖的定时器
};
},
methods: {
_sendBusinessCircle() {
// 这里是您的 _sendBusinessCircle 函数的原始代码
},
debounceSendBusinessCircle() {
clearTimeout(this.debounceTimer); // 清除之前的定时器(如果有)
this.debounceTimer = setTimeout(() => {
this._sendBusinessCircle();
}, 1000); // 设置新的定时器,在 1 秒后执行 _sendBusinessCircle()
},
},
};
实现在第一次点击时开始计算时间,并确保在接下来的 1 秒内仅执行一次 _sendBusinessCircle()
函数,您可以使用节流(throttle)技术。这里是一个使用节流
export default {
name: "WriteComment",
data() {
return {
lastExecutionTime: 0, // 添加一个用于节流的变量,存储上次执行的时间
};
},
methods: {
_sendBusinessCircle() {
// 这里是您的 _sendBusinessCircle 函数的原始代码
},
throttleSendBusinessCircle() {
const currentTime = new Date().getTime();
if (currentTime - this.lastExecutionTime > 1000) { // 检查距离上次执行是否已经过了 1 秒
this._sendBusinessCircle();
this.lastExecutionTime = currentTime; // 更新上次执行的时间
}
},
},
};