我正在寻找一些关于如何正确限制每秒发送消息的提示。我有一个 ajax 请求,它在用户按下按钮时将数据发送到 PHP 文件进行处理。我想将用户在一秒钟内按下提交按钮的次数限制为一定数量。这将有效地允许每秒不超过 3 条消息。不太确定我将如何完成这项工作,有什么建议吗?
问问题
47 次
3 回答
0
您可以简单地在按钮单击事件上设置一个计时器,该事件最初禁用按钮,然后在一定时间后重新启用它。
$('.myButton').click(function() {
...
$(this).attr('disabled','disabled');
setTimeout(function() {
$(this).removeAttr('disabled');
}, 2000);
})
于 2013-02-13T20:51:32.727 回答
0
您可以在单击后禁用该按钮,然后setTimeout()
在一段时间后使用它来重新启用它:
$('#myButton').click(function() {
$(this).attr('disabled', 'disabled');
setTimeout(function() {
$('#myButton').removeAttr('disabled');
}, 1000);
}
于 2013-02-13T20:53:17.060 回答
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;
});
}
于 2013-02-13T21:01:20.397 回答