2013-11-26 2 views
28

매개 변수async : false와 async : jquery ajax의 차이점은 무엇입니까? JQuery와 아약스에서

$.ajax({async : true, ...}); 

true와 false로 값을 설정의 차이점은 무엇입니까이 있어야한다?

<script> 
    // ... 
    $.ajax(... async: false ...); // Hey browser! first complete this request, 
            // then go for other codes 

    $.ajax(...); // Executed after the completion of the previous async:false request. 
</script> 

By default, the $ 아약스 request in jQuery is set to asynchronous을 : 당신이 브라우저가 다른 코드에 전달하기 전에 아약스 요청이 완료 될 것을 필요로 할 때

+5

설명서를 읽었습니까? – alex

답변

62

당신은, 거짓에 비동기 을 설정합니다. 변수 이름은 async이고 값은 true로 설정됩니다. 처음에는 그것에 대해 알았을 때 약간의 혼란이있었습니다.

동기식 (async : false) - 스크립트가 중지되고 응답하기 전에 서버가 응답을 보내주기를 기다립니다. 동기식 Ajax가 필수적인 몇 가지 상황이 있습니다.

표준 웹 응용 프로그램에서 고객과 서버 간의 상호 작용은 동기식입니다. 이것은 하나가 다른 것을 뒤따라야한다는 것을 의미합니다. 고객이 링크를 클릭하면 요청이 서 v로 전송 된 후 서 v는 결과를 다시 보냄니다.

요청이 손실되어 브라우저가 멈추는 위험 때문에 (onbefore) 언로드 이벤트 핸들러 외부에서는 동기 자바 스크립트를 사용하지 않는 것이 좋지만 서버에서 다시 수신해야하는 경우 사용자가 페이지에서 벗어나 이동하려면 동기식 자바 스크립트가 최선의 선택이 아닙니다.

$.ajax({ 
     url: "file.php", 
     type: "POST", 
     async: false, 
     success: function(data) { 
       // ..... 
     } 
     }); 

비동기 (비동기 : TRUE) - 스크립트가 페이지를 수 있도록 계속 처리하고 도착하면 경우 응답을 처리합니다. 요청 및/또는 파일 전송에 문제가 발생하면 프로그램은 문제를 인식하고 복구 할 수 있습니다. 처리는 방문자가 웹 페이지와 계속 상호 작용할 수 있고 요청 된 정보가 도착할 때 페이지를 업데이트하는 응답으로 처리되기 때문에 서버에서 검색이 이루어지는 동안 지연을 비동기 적으로 방지합니다.

$.ajax({ 
     url: "file.php", 
     type: "POST", 
     async: true, 
     success: function(data) { 
        // ..... 
     } 
     }); 

는 또한 XHR에 대한 false 블록 (등, 자바 스크립트를 실행하는 화면을 렌더링에 대한 책임) 메인 스레드 대기로 설정이 문서

Asynchronous and Synchronous AJAX calls

+1

답변 해 주셔서 감사합니다. 정말 유용합니다. –

+1

명확한 답변! –

+0

async : 이후이 업데이트에 대한 새로운 업데이트는 곧 중단 될 예정입니까? – iWillGetBetter

3

에서 살펴 완료하십시오.

이것은 거의 항상 끔찍한 생각입니다. 사용자는 반응이없는 UI를 좋아하지 않습니다.