You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 5-network/08-xmlhttprequest/article.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
`XMLHttpRequest`는 자바스크립트에서 HTTP 요청을 보낼 수 있게 해주는 브라우저 내장 객체입니다.
4
4
5
-
이름에 "XML"이 들어가 있지만 XML 형식뿐만 아니라 어떤 데이터에도 사용할 수 있습니다. 파일을 업로드하거나 다운로드하고, 진행 상황을 추적하는 등 여러 작업을 할 수 있습니다.
5
+
이름에 'XML'이 들어가 있지만 XML 형식뿐만 아니라 어떤 데이터든 다룰 수 있습니다. 파일을 업로드하거나 다운로드하고, 진행 상황을 추적하는 등 여러 작업을 할 수 있습니다.
6
6
7
7
요즘은 `fetch`라는 더 모던한 방식이 있어 `XMLHttpRequest`를 어느 정도 대체합니다.
8
8
@@ -52,7 +52,7 @@
52
52
53
53
`GET` 같은 일부 요청 메서드에는 본문이 없습니다. 반면 `POST` 같은 메서드는 `body`를 사용해 서버로 데이터를 보냅니다. 이에 대한 예시는 뒤에서 살펴보겠습니다.
54
54
55
-
4.`xhr` 이벤트로 응답을 감지합니다.
55
+
4.`xhr` 이벤트로 응답을 처리합니다.
56
56
57
57
가장 널리 쓰이는 이벤트는 다음 세 가지입니다.
58
58
-`load`-- 요청이 완료되고(HTTP 상태가 400이나 500이어도) 응답 전체가 다운로드되었을 때 발생합니다.
@@ -76,7 +76,7 @@
76
76
};
77
77
```
78
78
79
-
아래는 전체 예시입니다. 다음 코드는 서버에서 `/article/xmlhttprequest/example/load`URL을 불러오고 진행 상황을 출력합니다.
79
+
아래는 전체 예시입니다. 이 코드는 서버에서 `/article/xmlhttprequest/example/load`URL을 불러오고 진행 상황을 출력합니다.
80
80
81
81
```js run
82
82
// 1. 새 XMLHttpRequest 객체 생성
@@ -122,7 +122,7 @@ xhr.onerror = function() {
122
122
`response`(오래된 스크립트에서는 `responseText`를 사용할 수도 있음)
123
123
: 서버 응답 본문입니다.
124
124
125
-
해당 프로퍼티로 타임아웃도 지정할 수 있습니다.
125
+
`timeout` 프로퍼티로 타임아웃도 지정할 수 있습니다.
126
126
127
127
```js
128
128
xhr.timeout = 10000; // ms 단위 타임아웃, 10초
@@ -177,12 +177,12 @@ xhr.onload = function() {
177
177
```smart header="참고"
178
178
오래된 스크립트에서는 `xhr.responseText`, 심지어 `xhr.responseXML` 프로퍼티를 볼 수도 있습니다.
179
179
180
-
이 프로퍼티들은 문자열이나 XML 문서를 받기 위한 것으로 역사적인 이유로 남아 있습니다. 요즘은 위 예시처럼 `xhr.responseType`으로 형식을 지정하고 `xhr.response`에서 값을 가져오는 편이 좋습니다.
180
+
이 두 프로퍼티는 문자열이나 XML 문서를 받기 위한 것으로, 역사적인 이유로 남아 있습니다. 요즘은 위 예시처럼 `xhr.responseType`으로 형식을 지정하고 `xhr.response`에서 값을 가져오는 편이 좋습니다.
181
181
```
182
182
183
183
## `readyState` 상태
184
184
185
-
`XMLHttpRequest`는 진행 단계에 따라 상태가 바뀝니다. 현재 상태는 `xhr.readyState`로 확인할 수 있습니다.
185
+
`XMLHttpRequest`는 진행 단계에 따라 상태가 바뀝니다. 현재 상태는 `xhr.readyState`로 확인합니다.
186
186
187
187
[명세](https://xhr.spec.whatwg.org/#states)에 따른 모든 상태는 다음과 같습니다.
188
188
@@ -196,7 +196,7 @@ DONE = 4; // 요청 완료
196
196
197
197
`XMLHttpRequest` 객체는 `0`->`1`->`2`->`3`->...->`3`->`4` 순서로 상태를 거칩니다. 네트워크로 데이터 패킷을 받을 때마다 상태 `3`이 반복됩니다.
198
198
199
-
`readystatechange`이벤트를 사용해 상태 변화를 추적할 수 있습니다.
199
+
`readystatechange`이벤트로 상태 변화를 추적할 수 있습니다.
200
200
201
201
```js
202
202
xhr.onreadystatechange = function() {
@@ -246,9 +246,9 @@ try {
246
246
}
247
247
```
248
248
249
-
겉보기엔 괜찮아 보일 수 있지만, 동기 호출은 로딩이 완료될 때까지 페이지 안의 자바스크립트 실행을 막기 때문에 거의 쓰지 않습니다. 어떤 브라우저에서는 스크롤조차 할 수 없게 됩니다. 동기 호출이 너무 오래 걸리면 브라우저가 "멈춘" 웹페이지를 닫으라고 제안할 수도 있습니다.
249
+
겉보기엔 괜찮아 보일 수 있지만, 동기 호출은 로딩이 완료될 때까지 페이지 안의 자바스크립트 실행을 막기 때문에 거의 쓰지 않습니다. 어떤 브라우저에서는 스크롤조차 할 수 없게 됩니다. 동기 호출이 너무 오래 걸리면 브라우저가 '멈춘' 웹페이지를 닫으라고 제안할 수도 있습니다.
250
250
251
-
다른 도메인으로 요청하거나 타임아웃을 지정하는 등 `XMLHttpRequest`의 많은 고급 기능은 동기 요청에서 사용할 수 없습니다. 또한 보시다시피 진행 상황 표시도 없습니다.
251
+
다른 도메인으로 요청하거나 타임아웃을 지정하는 등 `XMLHttpRequest`의 많은 고급 기능은 동기 요청에서 사용할 수 없습니다. 위 예시에서 보듯 진행 상황 표시도 없습니다.
0 commit comments