Asynchronos JavaScript and XML

자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고,서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식이다.

Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest객체를 기반으로 동작한다.

XMLHttpRequest (XHR) 객체는 서버와 상호작용할 때 사용한다. XHR을 사용하면 페이지의 새로고침 없이도 URL에서 데이터를 가져올 수 있다.

이를 활용하면 사용자의 작업을 방해하지 않고 페이지의 일부를 업데이트할 수 있다.

Ajax의 등장

기존의 전통적인 웹페이지 통신 방식은 클라이언트의 요청으로 인해 HTML문서를 전송 받아 렌더링 하는 동기적인 방식을 사용했다.

따라서 웹페이지의 어떤 동작이나 데이터등을 요구하여 받아서 화면에 렌더링하면 전체 문서를 받아 렌더링 해야 했다.

결국 변경할 필요없는 부분 까지 처음 부터 다시 렌더링 해야 했고,화면이 깜박이는 현상을 동반하게 됬다.

서버로 부터 웹페이지의 변경에 필요한 데이터만 비동기 방식으로 전송 받아 웹페이지를 변경할 필요가 없는 부분은 렌더링 하지 않기 때문에 빠른 속도와 화면 전환이 가능해 졌다.

Ajax의 특징

웹 페이지 전체를 다시 요청하고 응답 할 필요 없이 일부분만을 갱신 할 수 있다.

클라이언트 풀링(클라이언트의 요청에 의해서만) 방식으로 작동하여 ,서버 푸시는 불가능하다.( push 알림)

다른 서버로 Ajax요청을 보낼 수 없다.

Ajax를 이용해 개발 편의를 지원하는 프레임 워크들이 많다(jQuery,dojo,Prototype 등등)