Существуют ли полезные использование готового участка, отличное от «4» (полного) в обратном вызове xhr.onreadystateChange?
-
12-10-2019 - |
Вопрос
Вы когда -нибудь использовали объект XHR, чтобы перехватить OnreadyStateChange с готовым участком, отличным от «4» (завершен)?
Мне любопытно узнать, что вы когда -нибудь запускаете функцию с возможными различными значениями. Я не могу представить реальное использование других государств. Они что -то полезны, чтобы что -то сделать?
Может привести несколько практических примеров, если таковые имеются?
- 0: запрос не инициализирован
- 1: Серверное соединение установлено
- 2: Полученный запрос
- 3: Запрос на обработку
- 4: Запрос закончен, и ответ готов
Решение
Я использую его на интрасети, которую я разработал в целях уведомления. Перехватывая состояние 3, я могу уведомить пользователя, что запрос начался.
Я также использую его во время запроса времени передачи. Я показываю время, прошедшее между штатами 3 и 4.
Поскольку я использую Mootools, я расширил класс запросов, чтобы запустить событие OnstateChange:
var EarlyRequest = new Class({Extends: Request,
onStateChange: function() {
this.fireEvent("onStateChange", [this.xhr.readyState]);
this.parent();
}
});
На дополнительной записке. Определения штатов, которые вы опубликовали (из W3CSchools) вводят в заблуждение, они яснее (от http://www.w3.org/tr/xmlhttprequest/#states):
Несомненно (числовое значение 0)Объект был построен.
Открыто (числовое значение 1)Метод Open () был успешно вызван. Во время этого состояния заголовки запроса могут быть установлены с помощью setRequestheader (), и запрос может быть сделан с помощью метода Send ().
Headers_received (числовое значение 2)Все перенаправления (если таковые имеются) были соблюдены, и все HTTP -заголовки окончательного ответа были получены. Несколько членов ответа объекта теперь доступны.
Загрузка (числовое значение 3)Ответный орган сущности принимается.
Сделано (числовое значение 4)Передача данных была завершена или что -то не так во время передачи (например, бесконечные перенаправления).