Ajax
는 Asyncronous Javascript And XML
의 줄임말입니다. 비동기 자바스크립트와 XML이라는 뜻을 가졌는데, 구체적으로 이야기하자면 XMLHttpRequest
라는 자바스크립트 객체를 이용해서 서버와 비동기 통신을 하고 결과를 DOM이 변경되었을 경우 페이지에 반영하는 기술입니다.
Ajax
가 등장하기 전에는 동기 통신
방식이 주를 이루었습니다. 동기 통신
은 다음과 같은 순서로 진행되었습니다.
동기 통신
방식은 요청을 보내고 응답을 받는 시간동안 사용자가 다른 동작을 수행하지 못하고 통신이 완료될 때까지 기다려야 했습니다. 또, 응답을 HTML 문서로 받아 해독하고 반영할 때 새로고침하느라 화면이 깜빡이게 되는데, 이것은 사용자 경험을 저하시키기도 했습니다. 또한 HTML 문서전체를 요청하고 응답으로 받음으로써 시간이 상대적으로 오래걸리기도 한다는 단점이 있었습니다.
Ajax
는 웹 페이지에 비동기 통신
을 쉽게 구현할 수 있도록 해주었습니다. Ajax
의 비동기 통신
은 다음과 같이 진행됩니다.
JS + XMLHttpRequest 객체
를 통해 서버에 요청을 보냅니다.비동기 통신
은 데이터의 처리만 서버에서 수행하고, UI는 클라이언트에서 처리합니다. 따라서 서버의 트래픽이 줄어서 동기 통신보다 빠른 속도를 낼 수 있습니다. 그리고 응답을 기다리는 동안 사용자가 UI에 대해서 조작을 계속해서 할 수도 있습니다.
또한, 비동기 통신
은 HTML 전체 응답이 아닌 변경된 부분에 대해서만 정보 갱신을 처리하므로 빠른 속도를 보장하고 전체 화면 깜빡임 현상도 제거할 수 있습니다.
Ajax
의 장점은 다음과 같습니다.
Ajax
의 단점은 다음과 같습니다.