Ajax

The old way
<form> 태그를 이용한 페이지 전환과 요청에 따른 응답


thank you for submitting!
form.html
result.html
server


The old way
<form> 태그를 이용한 페이지 전환과 요청에 따른 응답


thank you for submitting!
form.html
result.html
페이지 전환 (깜빡임)
페이지 전환으로 인해 필요한 부분 뿐만이 아닌 페이지 전부를 로딩

The old way

페이지의 일부만 업데이트하려면?
서버 응답에 따라 동적으로 페이지의 구성요소를 변경
form.html
server



페이지의 일부만 업데이트하려면?
서버 응답에 따라 동적으로 페이지의 구성요소를 변경
form.html
server


부분적으로 업데이트
powered by JavaScript

페이지의 일부만 업데이트하려면?

dynamic web page의 등장
- 서버와 자유롭게 통신할 수 있고,
- 페이지 깜빡임 없이 seamless하게 작동하는,
단순한 web page가 아닌, 보다 애플리케이션다운,
web app의 등장

dynamic web page의 등장
- 서버와 자유롭게 통신할 수 있고,
- 페이지 깜빡임 없이 seamless하게 작동하는,
- JavaScript와 DOM 이용

dynamic web page의 등장
- 서버와 자유롭게 통신할 수 있고,
- XMLHttpRequest (XHR)의 등장
-
페이지 깜빡임 없이 seamless하게 작동하는,
- JavaScript와 DOM 이용

dynamic web page의 등장
- 서버와 자유롭게 통신할 수 있고,
- XMLHttpRequest (XHR)의 등장
- 페이지 깜빡임 없이 seamless하게 작동하는,
- JavaScript와 DOM 이용
}
AJAX
Asynchronous JavaScript and XML

Using XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.open('get', 'http://52.78.213.9:3000/messages');
// 요청의 상태 변화를 추적합니다
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); // 요청 도중 에러 발생
}
}
xhr.send(); // 요청 전송
Using XMLHttpRequest (using jQuery)
$.get('http://52.78.213.9:3000/messages', function(response) {
// response: 서버로부터 온 응답
});
보다 쓰기 쉬운 표준 API를 만들자!
fetch API
fetch('http://52.78.213.9:3000/messages')
.then(function(response) {
return response.json();
})
.then(function(json) {
// json 형태로 전달받은 서버로부터의 응답
});
fetch와 관련된 Resources
최신 기술이라고 fetch가 전부 좋은 것은 아니며, 여전히 XMLHttpRequest는 많이 쓰이는 기술이므로, fetch와 XMLHttpRequest의 차이점을 확인한 후 사용하는 것이 좋음

END
Ajax
By Codestates
Ajax
- 1,315