停止当前的getJSON请求

Mac*_*nie 2 ajax jquery json getjson

我有一个调用getJSON的函数.但是当再次调用函数时,getJSON调用通常不会完成.

所以我想在发送新的之前停止先前的getJSON运行.

我尝试在全局变量中保存我的getJSON调用,并在函数的开头调用abort(),但是我得到了一个错误

TypeError: vr is undefined
Run Code Online (Sandbox Code Playgroud)

这是我的功能

var vr;

function getVol() {
    vr.abort();

    var data = {
        form : fields
    };

    vr = $.getJSON('getVol.php', data).done(function(r) {

        $.each( r, function( key, item ) {
            $.each( item, function( key, value ) {
                if(parseInt(value) > maxValue) maxValue = parseInt(value);
            });
        });

    }).fail(function() {
        console.log( "error" );
    });
}
Run Code Online (Sandbox Code Playgroud)

感谢帮助

Bar*_*mar 5

您收到错误是因为第一次调用该函数时vr为空.您需要先检查它是否已设置好.

function getVol() {
    if (vr) {
        vr.abort();
    }
    // rest of function
}
Run Code Online (Sandbox Code Playgroud)