본문 바로가기
Study Note/Javascript

jQuery #jqXHR 란? / ajax async true false 차이

by 시뮝 2019. 9. 11.
728x90

jQuery.ajax() async

async : true = 비동기 (Asynchronous, 요청을 보낸 후 응답결과와는 상관없이 다음방식이 동작하는 방식)
async : false = 동기 (Synchronous, 요청을 보낸 후 응답결과를 받아야지만 다음 동작이 이루어지는 방식)
async (default : true)
type : boolean

기본적으로 모든 요청은 비동기적으로 전송됩니다 (즉, 기본적으로 true로 설정 됨). 동기 요청이 필요한 경우이 옵션을 false로 설정하십시오. 도메인 간 요청 및 dataType : "jsonp"요청은 동기 작업을 지원하지 않습니다. 동기 요청은 브라우저를 일시적으로 잠글 수 있으며 요청이 활성화 된 동안 모든 작업을 비활성화 할 수 있습니다. jQuery 1.8부터 async : jqXHR ($ .Deferred)의 false 사용은 더 이상 사용되지 않습니다. jqXHR.done()과 같은 jqXHR 객체의 해당 메소드 대신 성공 / 오류 / 완료 콜백 옵션을 사용해야합니다.

jqXHR 

jQuery.ajax() 함수는 기본적으로 하나의 큰 jqXHR 객체 (본질적으로 가짜 자바 스크립트 xhr 객체)입니다.

jqXHR (jQuery XMLHttpRequest)은 브라우저 고유 XMLHttpRequest 객체를 대체합니다.
- jQuery는 브라우저 고유 XMLHttpRequest 객체를 superset API로 래핑합니다.
- jQuery XMLHttpRequest (jqXHR) 객체는 $.ajax () 함수에 의해 반환됩니다.
- jqXHR 객체는 가능한 경우 기본 XHR 기능을 시뮬레이션합니다.
- HTTP 요청 헤더 (마지막 수정, etag, Content-Type, MIME 유형 등)를 처리합니다.
- 요청의 콜백을 처리합니다 (약속 콜백 .done(), .fail() 등 포함).
- 요청에 설정된 모든 사전 필터를 처리합니다.
- 요청에 설정된 모든 시간 초과를 처리합니다.
- 크로스 도메인 호출 (jsonp 포함)을 처리합니다.
 - jQuery 소스 코드에서는 Fake xhr로 주석 처리됩니다.

  // Fake xhr

  jqXHR = {
        ...
  }

Background info on XHR request

XHR (XMLHttpRequest)은 JavaScript와 같은 웹 브라우저 스크립팅 언어로 제공되는 API입니다.

- HTTP 또는 HTTPS 요청을 웹 서버로 직접 보내고 서버 응답 데이터를 스크립트로 직접로드하는 데 사용됩니다.
- XHR은 Microsoft에서 설계하고 Mozilla, Apple 및 Google에서 채택한 JavaScript 객체입니다.
- XHR은 XML뿐만 아니라 모든 유형의 데이터를 검색하는 데 사용될 수 있으며 HTTP 이외의 프로토콜 (파일 및 ftp 포함)을 지원합니다.
- XHR은 보안상의 이유로 요청이 원래 웹 페이지를 제공 한 동일한 서버로 전송 된 경우에만 성공한다는 점에서 브라우저와 동일한 출처 정책을 따릅니다.
- XHR 개체의 개념은 원래 Microsoft Exchange Server 2000 용 Microsoft Outlook Web Access 개발자가 만든 것입니다.

 

 

jQuery.ajax 참고 사이트(EN) : https://api.jquery.com/jquery.ajax/

jqXHR 참고 사이트(EN) : https://www.sitepoint.com/jqxhr-object/

728x90

댓글