자세한 내용은 아래 링크를 클릭하세요. :)
http://www.ibm.com/developerworks/kr/library/wa-aj-ajaxcomm/index.html


요약: 비동기 JavaScript 및 XML(Ajax) 기반 웹 애플리케이션의 핵심이 되는 부분은 클라이언트와 서버 사이의 통신 계층입니다. 이 계층을 구현하려면 브라우저에서 제공하는 다양한 통신 메커니즘뿐 아니라, 각 메커니즘의 장단점에 대해서도 잘 이해할 필요가 있습니다. 이 기사에서는 어떤 애플리케이션의 구체적인 통신 요구 사항과 그에 알맞은 메커니즘을 올바로 매치하는 방법을 학습할 수 있습니다. 세부적인 사항을 보여주는 예제들을 통해 이런 각기 다른 클라이언트-서버 통신 요구를 충족시킬 수 있는 통신 계층을 만드는 방법을 이해할 수 있습니다.


Ajax 방식으로 작업하는 방법

Ajax 기반 웹 애플리케이션은 보통 서버에서 작동하는 애플리케이션에 대한 클라이언트 역할을 하므로, 그 서버로 데이터를 앞뒤로 보내며 통신 기능을 집중적으로 사용하는 애플리케이션이 되는 결과를 낳는다. 데이터 전송 기능을 제공할 메커니즘이 필요하다. 애플리케이션의 주요 컴포넌트로서, 이런 메커니즘은 최대한 가볍고 안전해야 한다. 다행히도, 모든 현대적 브라우저에는 정확히 이런 목적으로 사용할 수 있는 오브젝트, 즉 XHR(XMLHttpRequest)이 갖춰져 있다. 실제로 가벼운 XHR은 페이지를 검색한 서버로 한정되는 요청을 생성한다. XHR은 사이트 간 스크립팅 문제를 제거하며, 텍스트만 전달할 수 있다.


할 수 있는 일과 할 수 없는 일

애플리케이션은 XHR 오브젝트를 사용하여 서버로 정보를 보내고 서버에서 데이터를 페치할 수 있다. 이 메커니즘은 앞서 설명한 메커니즘에 비해 여러 가지 장점이 있다.

어떤 유형의 HTTP 메소드라도 사용 가능
현재 도입된 대부분의 일반적인 서버 아키텍처는 REST 원리를 기반으로 하기 때문에, GET, PUT, POST 및 DELETE 요청을 사용해야 한다. 클라이언트와 서버 간 통신의 핵심이라 할 수 있는 XHR 오브젝트의 사용으로 RESTful 서버 아키텍처를 사용할 수 있다.
완료 시 알림
XHR 오브젝트는 생성에서부터 응답이 완전히 로드되기까지 여러 가지 상태에서 존재할 수 있다. 각각의 상태 변화 시, 이벤트가 실행되고 앞으로의 상태 변화 시 호출할 콜백을 정의할 수 있다. 이 이벤트 핸들러를 통해 서버에서 페치된 데이터에 의존하는 코드가 해당 데이터를 사용할 수 있을 때 실행되도록 할 수 있다.
페이지 히스토리에 개입 없음
XHR 호출은 페이지의 히스토리 오브젝트에 반영되지 않으므로, 브라우저의 뒤로 및 앞으로 동작의 일반적인 용도에서 벗어나지 않는다.

 

Posted by 클로버,,