防止快速按钮单击后端

时间:2019-04-05 14:57:51

标签: javascript event-handling dom-events

我正在创建一个按钮位于其中的网页。当用户按下按钮时,我的Javascript使用AJAX调用我的后端,该后端询问我的数据库并获取一些要显示在屏幕上的图片。 就像这样(伪代码):

// JS event
button.on('click', function(){
    // Here my AJAX calling
    $.post(callMyBackend, {
       foo: bar // Parameters
    }, function (responseText) {
       // Here goes more stuff...
    });
});

一切正常,但是我想通过太快地单击按钮来防止用户滥用。因此,如果用户快速点击3次,我希望对后端的呼叫发生一次(而不是3次),并返回结果仅针对最后一次呼叫(注意,最后一次呼叫,没有第一个!)。

我该如何解决?

3 个答案:

答案 0 :(得分:2)

您可以添加plant 变量:

page

当然,我建议您添加js代码以更改按钮e.x的样式。 “已禁用”

答案 1 :(得分:2)

df1 <- read.table(h=T,strin=F,text="
AUS   CAN   DEN   original_period
NA    NA    4.3    1955-02
3.2   NA    NA     1955-02
NA    1.1   NA     1955-02
3.1   NA    NA     1955-03
NA    NA    9.7    1955-03
NA    1.2   NA     1955-03")

答案 2 :(得分:1)

您可以先禁用该按钮。需要时或超时后,可以再次启用按钮:

$('#button').on('click', function(){
    this.disabled = true;
    setTimeout(function(ele) {
        ele.disabled = false;
    }, 1000, this)
    return; // ......
    // Here my AJAX calling
    $.post(callMyBackend, {
        foo: bar // Parameters
    }, function (responseText) {
        // Here goes more stuff...
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="button">Click Me</button>