[javascript] XMLHttpRequest의 다른 readystates는 무엇을 의미하며 어떻게 사용할 수 있습니까?

XMLHttpRequest5 readyStates 가 있으며 그중 1 개만 사용합니다 (마지막 것 4).

다른 용도는 무엇이며 어떤 용도로 사용할 수 있습니까?



답변

전체 readyState값 목록 은 다음과 같습니다.

State  Description
0      The request is not initialized
1      The request has been set up
2      The request has been sent
3      The request is in process
4      The request is complete

( https://www.w3schools.com/js/js_ajax_http_response.asp에서 )

실제로 4를 제외하고는 거의 사용하지 않습니다.

일부 XMLHttpRequest 구현에서는 responseTextwhen 에서 부분적으로 수신 된 응답을 볼 수 readyState==3있지만 이것은 보편적으로 지원되지 않으며 의존해서는 안됩니다.


답변

kieron 의 답변에는 w3schools ref가 포함되어 있습니다. 아무도 의지하지 않는,
bobince 의 대답은 실제로 IE의 기본 구현을 알려주는 링크를 제공합니다.

그래서 여기에 readystate가 무엇을 나타내는 지 올바르게 이해하기 위해 인용 된 원본 문서가 있습니다.

XMLHttpRequest 객체는 여러 상태에있을 수 있습니다. readyState 속성은 현재 상태를 반환해야하며 다음 값 중 하나 여야합니다.

UNSENT (숫자 값 0)
개체가 생성되었습니다.

OPENED (숫자 값 1)
open () 메서드가 성공적으로 호출되었습니다. 이 상태에서 요청 헤더는 setRequestHeader ()를 사용하여 설정할 수 있으며 요청은 send () 메서드를 사용하여 만들 수 있습니다.

HEADERS_RECEIVED (숫자 값 2)
모든 리디렉션 (있는 경우)을 따르고 최종 응답의 모든 HTTP 헤더를 수신했습니다. 이제 개체의 여러 응답 멤버를 사용할 수 있습니다.

LOADING (숫자 값 3)
응답 엔티티 본문을 수신 중입니다.

DONE (숫자 값 4)
데이터 전송이 완료되었거나 전송 중에 문제가 발생했습니다 (예 : 무한 리디렉션).

여기에서 읽으십시오 : ReadyState의 W3C 설명


답변

원본 최종 문서

0, 12단지 당신이 지금까지 전화 한 요청을하는 데 필요한 방법 중 얼마나 많은을 추적 할 수 있습니다.

3서버의 응답이 들어 오기 시작했음을 알려줍니다. 그러나 XMLHttpRequest웹 페이지에서 개체를 사용할 때는 해당 정보로 할 수있는 작업이 거의 없습니다 (*). 허용하는 확장 속성에 대한 액세스 권한이 없기 때문입니다. 부분 데이터를 읽으십시오.

readyState 4는 모든 의미를 보유하는 유일한 것입니다.

(* : readyState를 확인하기 위해 생각할 수있는 유일한 용도 3는 서버 끝에서 어떤 형태의 생명체를 신호한다는 것입니다. 따라서 전체 응답을받을 때까지 기다리는 시간을 늘릴 수 있습니다.)


답변

onreadystatechange readyState 속성이 변경 될 때마다 자동으로 호출 될 함수 (또는 함수 이름)를 저장합니다. readyState XMLHttpRequest의 상태를 보유합니다. 0에서 4로 변경됩니다.

0 : 요청이 초기화되지 않았습니다.

1 : 서버 연결 설정

2 : 요청 수신

3 : 요청 처리

4 : 요청 완료 및 응답 준비

상태 200 : “OK”

404 페이지를 찾을 수 없습니다


답변

  • 0 : UNSENT 클라이언트가 생성되었습니다. open () 아직 호출되지 않았습니다.
  • 1 : OPENED open ()이 호출되었습니다.
  • 2 : HEADERS_RECEIVED send ()가 호출되었으며 헤더 및 상태를 사용할 수 있습니다.
  • 3 : LOADING 다운로드 중; responseText는 부분 데이터를 보유합니다.
  • 4 : DONE 작업이 완료되었습니다.

(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState에서)


답변