2013/11/01

XMLHttpRequest()의 객체에서 open()을 날릴 때 세번째 매개변수 true의 역할은!?

XMLHttpRequest()의 객체에서 open()을 날릴 때 세번째 매개변수 true의 역할은!?


var xhr = new XMLHttpRequest();

xhr.open("post", url, true);

open() 메서드의 간단 설명

open(method, url, async)

Specifies the type of request, the URL, and if the request should be handled asynchronously or not.

method: the type of request: GET or POST
url: the location of the file on the server
async: true (asynchronous) or false (synchronous)


open() 메서드는 서버에 있는 파일에 리퀘스트(request)를 날리는 방식을 정해주는 건데, 세번째 매개변수는 이 리퀘스트를 비동기식(asynchronous)으로 할 것인지, 동기식(synchronous)으로 할 것인지를 설정하는 것.

즉, true를 넣으면 리퀘스트가 비동기식으로 날아간다.

비동기식(asynchronous)이란?

리퀘스트를 날린 후에 서버의 응답을 기다리지 않고 JavaScript 상의 다음 작업(코드)을 계속 시행하겠다는 것. 다른 작업 중에 서버의 응답이 날아오면 그 때 다시 그에 대한 작업을 한다고 함.


이게 얼마나 큰 장점인가 하면...

동기식(synchronous)으로 리퀘스트를 날리게 되면 클라이언트는 그 리퀘스트에 대한 서버의 응답을 기다리게 되므로, 요청을 날린 페이지는 (서버의 작업이 끝날 때까지?) 멈춰버린다고 함.

AJAX 란?

다시 처음으로 돌아가서, AJAX가 Asynchronous JavaScript and XML 의 약자인 점만 보더라도, 비동기식(Asynchronous)으로 리퀘스트를 날리고 나서 서버의 응답에 얽매이지 않을 수 있다는 게 얼마나 중요한 부분인지 알 수 있음. -.-a



참고 : http://www.w3schools.com/

댓글 없음:

댓글 쓰기