按钮上的Jquery多个Ajax请求单击

时间:2013-09-12 11:46:59

标签: jquery ajax

我的页面上有一个按钮

<input type="button" onclick="someFunction()" value="submit"/>

现在当用户点击按钮时,js函数someFunction()执行。在此函数中,请求通过jquery $ .ajax方法发送到服务器...

如果用户反复点击按钮,我需要知道发生了什么。

是否jquery维护请求的que或中止上一个请求并启动新请求..

如果jquery维护que,那么如何停止/中止它们。

任何帮助都会非常受欢迎。

4 个答案:

答案 0 :(得分:2)

是的,$ajax在每次点击(事件火灾)时发出新请求,

不会有任何请求被停止/中止。

建议:在第一次点击时禁用,并在响应后启用它。

答案 1 :(得分:0)

您可以将Ajax请求存储在变量中:

var request = $.ajax({
    type: 'POST',
    url: 'someurl',
    success: function(result){}
});

然后你可以中止请求:

request.abort();

如果单击该按钮,则只需检查是否设置了request以确保一次只能进行1次ajax呼叫。

答案 2 :(得分:0)

function someFunction() {
    if (this.ajaxPending) return;
    this.ajaxPending = true;
    $.ajax(...).always(function () {
        this.ajaxPending = false;
    });
}

答案 3 :(得分:0)

您的代码必须如下:

    $(document).ready(function(){
    js_Codes();

    /* The rest of your code that will not reload after ajax request */

});

$(document).ajaxComplete(function(){
    /* Here we call the codes that will reload after your ajax request */
    js_Codes();
});

function js_Codes(){

    function clickOpenDialog(){
        $('.btOpenDialog').off('click',clickOpenDialog);
        fn_open_Dialog_Click($(this).prop('alt'), function(){$('.btOpenDialog').on('click',clickOpenDialog);});
        return false;
    };

    function fn_Open_Dialog_Click(myString){
        var myArray = myString.split(';');
        /* whatever u want with your page with a string param array */

    };

    $('.btOpenDialog').on('click',clickOpenDialog);
}