2016-07-01 6 views
1

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

도움을 주셔서 감사합니다

+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'의 유효 값은 false가 아니며, – Barmar