Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- css 오버레이
- flex-shrink
- Prototype
- img 확대
- Sass
- Express
- express-handlebars
- just-one-small-sip
- es6
- Node.js
- flex-basis
- css grid
- css variables
- 무료 백엔드 배포
- module wrapper function
- JS
- shit-christmas
- 정규표현식
- 디자인패턴
- close together
- ajax
- select by attribute
- flexbox
- Object.create
- Engoo
- flex-grow
- regExp
- improve-iq-by-up-to-10%!
- css
- node
Archives
- Today
- Total
XHR object를 이용한 비동기 통신 본문
xhr.open()
요청 타입 및 요청 대상의 URL 또는 파일이름을 상세하여 초기화시키는 메서드이다. 세번째 파라미터는 비동기 여부이다.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open
XMLHttpRequest.open() - Web APIs | MDN
The XMLHttpRequest method open() initializes a newly-created request, or re-initializes an existing one.
developer.mozilla.org
xhr.onload
요청한 데이터를 받았을 때 실행될 함수를 담는 프로퍼티이다.
*참고: HTTP 상태코드 https://developer.mozilla.org/ko/docs/Web/HTTP/Status
HTTP 상태 코드 - HTTP | MDN
HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고
developer.mozilla.org
xhr.send()
설정된 값을 기반으로 요청을 보낸다.
xhr.onreadystatechange
해당 프로퍼티에 할당된 함수가 readystate가 바뀔 때마다 호출된다.
document.querySelector("#button").addEventListener("click", loadData);
function loadData (e) {
// Create an XHR Object
const xhr = new XMLHttpRequest();
console.log("READYSTATE", xhr.readyState); // 0
// Open
xhr.open("GET", "data.txt", true);
console.log("READYSTATE", xhr.readyState); // 1
// Optional - Used for spinners / loaders
xhr.onprogress = function () {
console.log("READYSTATE", xhr.readyState); // 3
}
xhr.onload = function () { // at this point, readyState is 4
if (this.status === 200) {
// console.log(this.responseText);
document.querySelector("#output").innerHTML = `<h1>${this.responseText}</h1>`;
}
}
// it's older syntax
// xhr.onreadystatechange = function () {
// console.log("READYSTATE", xhr.readyState);
// if (this.status === 200 && this.readyState === 4) {
// console.log(this.responseText);
// }
// }
xhr.onerror = function () {
console.log("Request error...");
}
xhr.send();
// readyState Values
// 0: request not initialized
// 1: server connection established
// 2: request received
// 3: processing request
// 4: request finished and response is ready
// HTTP Statuses
// 200: OK
// 403: "Forbidden"
// 404: "Not Found"
};
'2021 프론트 엔드 로드맵 따라가기 > JS' 카테고리의 다른 글
Callback function (0) | 2021.06.07 |
---|---|
REST API (0) | 2021.06.07 |
AJAX란 (0) | 2021.06.07 |
비동기(Asynchronous) 프로그래밍이란 (0) | 2021.06.06 |
ES5에서 static 메서드를 선언하기 (0) | 2021.06.06 |
Comments