January 18, 2020
브라우저에서 웹페이지를 요청하거나 링크를 클릭하면 화면 갱신이 발생한다. 이것은 브라우저와 서버와의 통신에 의한 것이다.
[이미지 출처 : poiemaweb]
[이미지 출처 : poiemaweb]
단순한 web page가 아닌, 보다 애플리케이션다운, web appp의 등장
서버와 자유롭게 통신할 수 있다.
페이지 깜빡임 없이 seamless하게 작동한다.
위의 1,2번을 합쳐서 AJAX(Asynchronous JavaScript and XML)라고 한다.
[이미지 출처 : poiemaweb]
서버에서 자원을 가져오기위해 fetch를 사용한다.
XMLHttpRequest : 요즘도 많이 쓰고있는 기술이지만, 복잡하다.(콜백방식)
function reqListener () {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "http://www.example.org/example.txt");
oReq.send();
jQuery ajax : 복잡하고, 가동성이 좋지 않다(체이닝 방식)
$.ajax({
url: 'http://example.com',
method: 'GET',
dataType: 'json'
})
.done(function(json) {
console.log(json)
})
.fail(function(xhr, status, errorThrown) {
})
.always(function(xhr, status) {
console.log('요청완료')
});
fetch('http://example.com') // 서버의 주소
.then(res => res.json()) // json을 javascript object로 바꿔주는 코드
.then(data => {
console.log(data);
})
.catch(err=>{ // error가 catch될 수 있는 함수
console.error(err)
});