2012-10-18 3 views
1

getJson 사용에 관한 질문이 있습니다.

나는 getJson 호출을했는데 왜 그것이 이루어 졌는지를 알 수 없었습니다. 나는 getJson 다음에 경고를하고 getJson 전에 경고가 실행되고 있다는 것을 알았다.

는 그때 그냥 내가 필요한 곳으로이 문제를 해결하기 위해 다른 방법이 있는지 궁금

 $.ajax({ 
      url: url, 
      dataType: 'json', 
      async: false, 
      success: function (data) { 
       if (data == true) {       
        alert("Cannot continue.") 
        returnval = false; 
       } 
      } 
     }); 

을 다음과 같이 비동기 거짓으로 $ 아약스를 사용하는 것입니다 해결하는 유일한 방법을 생각 json asjax 호출을 통해 비동기 false를 사용하지 않고 먼저 실행합니다. MVC C#을 사용하고 있습니다. 위의 코드는 제 견해입니다.

+5

'async : false'를 사용하지 말아야 할 시간의 90 %. AJAX에서 읽기 - 비동기 호출이 완료되면 콜백 함수 내부에서 작업해야합니다. –

+0

'async : false'를 사용해서는 안되는 100 %라고 말하고 싶습니다. 동기화 된 요청을 사용하여 전체 포스트 백을 수행해야하는 경우 AJAX를 귀찮게하지 마십시오. –

답변

0

간단합니다. async : false를 제거하십시오. 완료 블록에서 호출 후에 실행되는 코드를 배치해야합니다. '

success: doThisOnResult 

주 당신이 돈 않는, 당신의 $ 아약스 호출에서 다음

var doThisOnResult = function(data) { 
    alert('Data is here.'); 
}; 

: 당신이 실행하는 많은 양의 코드가 있다면, 자신의 기능에 배치 할 수 있습니다 함수를 호출하는 대신 변수로 전달하기 때문에 해당 줄에 괄호를 사용하고 싶지 않습니다.