(기술) Ajax

이번 프로젝트를 진행하면서 front end 개발을 처음으로 제대로 해보게 되었는데 HTML이나 자바스크립트는 그럭저럭 사용할 수 있었지만 Ajax를 사용하는 것이 참 어려웠습니다. PHP를 통해서 웹 개발을 하면서 사용해 본 적이 있었지만 Ajax가 뭔지도 잘 모르면서 페이지 갱신 없이 데이터를 변경하는데 쓰인다는 것만 알고 인터넷 소스를 가져다가 사용했었기 때문에 개발환경이 자바로 바뀌면서 적용시키질 못하였고 이번 기회에 블로그에 개념이라도 정리를 해보고 싶었습니다.

Ajax(Asynchronous JavaScript and XML, 에이잭스)는 대화식 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다.

Ajax는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을 지칭하는 용어이다.

제가 이해한 것을 정리해본다면 Ajax는 XML, JSON 등을 이용하여 웹 서버와 비동기적으로 데이터를 교환하고 DOM, 자바스크립트를 이용하여 HTML에 변경된 데이터를 표현하는 기법입니다.

기존 기술과 Ajax의 차이점

장점

단점


예제 get-ajax-data.js:

// This is the client-side script

// Initialize the Ajax request
var xhr = new XMLHttpRequest();
xhr.open('get', 'send-ajax-data.php');

// Track the state changes of the request
xhr.onreadystatechange = function(){
 // Ready state 4 means the request is done
 if(xhr.readyState === 4){
  // 200 is a successful return
  if(xhr.status === 200){
   alert(xhr.responseText); // 'This is the returned text.'
  }else{
   alert('Error: '+xhr.status); // An error occurred during the request
  }
 }
}

// Send the request to send-ajax-data.php
xhr.send(null);

send-ajax-data.php:

<?php
// This is the server-side script<br>

// Set the content type
header('Content-Type: text/plain');

// Send the data back
echo "This is the returned text.";
?>