end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

jQueryのajax()を abort() で中断と、2重送信の防止

jQueryのajax()を中断する方法: 小粋空間

$(function(){
    var jqxhr;
    $('#execute').click(function(){
        jqxhr = $.ajax({
            url: "http://user-domain/foo.cgi",
            type: "GET",
            dataType: 'html',
        })
        .done(function( data ) {
            $('#foo').html(data);
	    })
        .fail(function( data ) {
            // ...
        });
    });
    $('#stop').click(function(){
        jqxhr.abort(); // #####ココ
    });
});

初めて知りました。お恥ずかしい

↓こちらは、2重(重複)submitの防止

$(function(){
    var jqxhr;
    $('#execute').click(function(){
        if (jqxhr) {
            return;
        }
        jqxhr = $.ajax({
            url: "http://user-domain/foo.cgi",
            type: "GET",
            dataType: 'html',
        })
        .done(function( data ) {
            $('#foo').html(data);
        })
        .fail(function( data ) {
            // ...
        });
    });
});