2016-07-01 7 views
1

私はgetJSONを呼び出す関数を持っています。しかし、関数が再び呼び出されると、getJSON呼び出しは終了しないことがよくあります。現在のgetJSONリクエストを停止する

新しいgetJSONを送信する前に、以前のgetJSONを停止したいと考えています。

私はグローバル変数で私getJSONコールを保存し、(中止呼び出そう)私の関数の先頭で、私はここでエラー

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

です助けてくれてありがとう

+0

getJSONがまだ実行されているときを防ぎますか? – user3791775

+0

は同じデータが要求されていますか、それとも別の更新されたデータセットと違うのでしょうか? –

答えて

2

最初にこの関数を呼び出すと、vrが空であるため、エラーが発生しています。最初に設定されていることを確認する必要があります。

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

これは 'if(vr === undefined){vr.abort(); } '? – russellmania

+0

@ruzelなぜですか? 'vr'の有効な値は偽ではありませんが、 – Barmar

関連する問題