Asynchronous Javascript And XML.
비동기식 자바스크립트 통신을 의미하고, 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서
전체 페이지를 새로고침 하지 않고, 페이지의 일부분만을 로드하는 기법이다.
Ajax는 JSON, XML, HTML, 텍스트 파일 등 다양한 형태의 데이터를 비동기식으로 주고 받을 수 있다.
비동기적 자바스크립트를 동작하는 기술들을 통틀어서 AJAX라고 부른다!!! (햇갈림 주의)
이전에는 XMLHttpRequest API를 이용해서 구현했지만, 불편함을 느꼈던 사용자들이 JQuery로 시작해서 Fetch API(ES6), Axios API(Vuejs) 등을 통해 비동기적 통신을 구현하고 있다.
AJAX 기술은 여러가지 기술이 혼합적으로 사용되어 이루어진다.
AJAX 네트워크 기술을 이용하여 클라이언트 - 서버로 데이터를 요청하고, 응답을 받을 수 있다.
AJAX는 HTML 페이지 전체가 아닌, 일부분만 갱신할 수 있도록 XMLHttpRequest 객체를 통해 서버에 request(요청)한다. 이 경우, JSON이나 XML 형태로 필요한 데이터만 받아 갱신하기 때문에, 그만큼의 자원과 시간을 아낄 수 있다.
// 클라이언트-사이드 스크립트
// Ajax 요청을 초기화합니다
var xhr = new XMLHttpRequest();
xhr.open('get', 'send-ajax-data.php');
// 요청의 상태 변화를 추적합니다
xhr.onreadystatechange = function(){
if(xhr.readyState !== 4) return;
// readyState 4: 완료
if(xhr.status === 200) {
// status 200: 성공
console.log(xhr.responseText); // '반환된 텍스트'
} else {
console.log('에러: ' + xhr.status); // 요청 도중 에러 발생
}
}