如何防止用户过快点击按钮,以防止额外的ajax请求?

min*_*004 1 ajax jquery

想象一下喜欢或投票页面的按钮.我需要这个按钮来发送Ajax请求来记录用户的喜欢.

点击按钮的人很快很多次,导致一些Ajax请求.
我该如何解决这个问题?
当人们单击按钮(span)时,我需要阻止它再次发送Ajax请求,直到完成上一个Ajax请求

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<span onclick="send_ajax(this)">send_ajax</span>
<script type="text/javascript">

    function send_ajax(node){
        $.ajax({
            url:'ajax.php',
            type:'POST',
            data: {},
            success:function() {

            }
        });
    }
</script>
Run Code Online (Sandbox Code Playgroud)

Bow*_*wie 8

这个怎么样?

var processing = false; 
function send_ajax(node){
  if(!processing){
    processing = true;
    $.ajax({
        url:'ajax.php',
        type:'POST',
        data:{},
        success:function(){
              processing = false;
        }
    });
  }
}
Run Code Online (Sandbox Code Playgroud)


for*_*nte 5

首先,您必须取消绑定点击:

<script type="text/javascript">
    jQuery('span').click(function(){
        $('span').unbind('click');  // unbind click
        //ajax request
    })
</script>
Run Code Online (Sandbox Code Playgroud)

然后在complete具有$.ajax方法的事件中再次绑定它:

complete: function() {
    $('span').bind('click'); // will fire either on success or error
}
Run Code Online (Sandbox Code Playgroud)