【问题标题】:Stop the current getJSON request停止当前的 getJSON 请求
【发布时间】:2016-07-01 22:45:23
【问题描述】:

我有一个调用 getJSON 的函数。但是当再次调用该函数时,getJSON调用往往没有结束。

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

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

TypeError: vr is undefined

这是我的功能

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" );
    });
}

感谢您的帮助

【问题讨论】:

  • 为什么不反过来呢?阻止 getJSON 何时仍在运行?
  • 请求的是相同的数据还是更新的不同数据集,这就是您要重新发出请求的原因?

标签: jquery json ajax getjson


【解决方案1】:

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

function getVol() {
    if (vr) {
        vr.abort();
    }
    // rest of function
}

【讨论】:

  • 不应该是if(vr === undefined) { vr.abort(); }吗?
  • @ruzel 为什么? vr 的任何有效值都不会是假的,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多