我正在寻找一些关于如何正确限制每秒发送邮件的提示。我有一个ajax请求,它将数据发送到PHP文件,以便在用户按下按钮时进行处理。我想限制用户在一秒钟内按下提交按钮的次数到一定数量。这有效地允许每秒不超过3条消息。我不太确定如何完成这项工作,有什么建议吗?
答案 0 :(得分:0)
您只需在按钮点击事件上设置一个计时器,该事件最初禁用该按钮,然后在一定时间后重新启用它。
$('.myButton').click(function() {
...
$(this).attr('disabled','disabled');
setTimeout(function() {
$(this).removeAttr('disabled');
}, 2000);
})
答案 1 :(得分:0)
您可以在点击后停用按钮,然后在一段时间后使用setTimeout()
重新启用它:
$('#myButton').click(function() {
$(this).attr('disabled', 'disabled');
setTimeout(function() {
$('#myButton').removeAttr('disabled');
}, 1000);
}
答案 2 :(得分:0)
我想限制用户在一秒钟内按下提交按钮的次数
这很容易,在请求处于活动状态时禁用它,并在经过一段时间后启用它。但是,您需要注意“单击按钮”与“发送到服务器的请求”不同,您还需要一个服务器端逻辑。
$('#theButton').click(function() {
var button = this,
ratelimit = true,
ajaxrunning = true;
button.disabled = true;
setTimeout(function() {
ratelimit = false;
if (!ajaxrunning)
button.disabled = false;
}, 5000);
$.ajax(…).always(function() {
ajaxrunning = false;
if (!timeout)
button.disabled = false;
});
}