Ответы:
Полный список 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 реализация может позволить вам увидеть частично полученные ответы в responseText
когда readyState==3
, но это не поддерживается всем и не следует полагаться.
Кирон «s ответ содержит w3schools реф. на который никто не полагается, ответ bobince дает ссылку, которая фактически говорит о собственной реализации IE,
Итак, вот исходная документация, цитируемая, чтобы правильно понять, что представляет собой readystate:
Объект XMLHttpRequest может находиться в нескольких состояниях. Атрибут readyState должен возвращать текущее состояние, которое должно быть одним из следующих значений:
UNSENT (числовое значение 0)
Объект создан .OPENED (числовое значение 1)
Метод open () был успешно вызван. Во время этого состояния заголовки запроса могут быть установлены с помощью setRequestHeader (), а запрос может быть выполнен с помощью метода send ().HEADERS_RECEIVED (числовое значение 2)
Все перенаправления (если таковые имеются) были выполнены, и все HTTP-заголовки окончательного ответа были получены. Теперь доступны несколько ответных членов объекта.ЗАГРУЗКА (числовое значение 3)
Получено тело объекта ответа.DONE (числовое значение 4)
Передача данных завершена или что-то пошло не так во время передачи (например, бесконечные перенаправления).
Прочтите, пожалуйста, здесь: W3C Объяснение ReadyState
Оригинальная полная документация
0
, 1
и 2
только отслеживать, сколько из необходимых методов для выполнения запроса вы уже вызвали.
3
сообщает вам, что начал поступать ответ сервера. Но когда вы используете XMLHttpRequest
объект с веб-страницы, вы почти ничего не можете (*) сделать с этой информацией, поскольку у вас нет доступа к расширенным свойствам, которые позволяют вам читать частичные данные.
readyState 4
- единственное, что имеет какое-либо значение.
(*: о единственном возможном использовании, которое я могу придумать для проверки readyState, 3
- это то, что он сигнализирует о какой-то форме жизни на стороне сервера, поэтому вы могли бы увеличить количество времени, в течение которого вы ждете полного ответа, когда вы его получите.)
onreadystatechange Сохраняет функцию (или имя функции), которая будет автоматически вызываться каждый раз при изменении свойства readyState. readyState Сохраняет состояние XMLHttpRequest. Меняется с 0 на 4:
0: запрос не инициализирован
1: соединение с сервером установлено
2: запрос получен
3: обработка запроса
4: запрос завершен и готов ответ
статус 200: «ОК»
404 Страница не найдена
(Из https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)