JavaScript свойство XMLHttpRequest.upload
Определение и применение
JavaScript свойство upload объекта XMLHttpRequest возвращает объект XMLHttpRequestUpload, который определяет набор свойств регистрации обработчиков событий для отслеживания процесса выгрузки тела HTTP запроса.
Следующие события могут быть запущены на объекте upload и использоваться для мониторинга загрузки:
| Событие | Обработчик события | Описание |
|---|---|---|
| loadstart | onloadstart | Вызывается когда операция выгрузка началась. |
| progress | onprogress | Вызывается периодически (примерно раз в 50 миллисекунд) в ходе операции выгрузки. |
| abort | onabort | Вызывается при прерывании операции выгрузки. |
| error | onerror | Вызывается, когда в процессе операции выгрузки возникает сетевая ошибка. |
| load | onload | Вызывается в случае успешного завершения операции выгрузки. |
| timeout | ontimeout | Вызывается, если истекло время ожидания, определяемое свойством timeout объекта XMLHttpRequest. |
| loadend | onloadend | Вызывается в случае успешного или неудачного завершения операции выгрузки (это событие не различает успех или неудачу и отправляется в конце загрузки независимо от результата). Событие loadend всегда следует за событиями load, abort, error и timeout. |
Поддержка браузерами
Спецификация: xhr.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
upload | 2 | 12 | 3.5 | ≤12.1 | 4 | 18 | 4 | ≤12.1 | 3 | 1.0 | 4.4 | 3 |
поддерживается с ограничениями нет поддержки нет данных≤31 — не позднее версии 31
JavaScript синтаксис:
JavaScript
XMLHttpRequest.upload;
Cпецификация
XMLHttpRequestПример использования
JavaScript
let xhr = new XMLHttpRequest(); // инициализируем только что созданный запрос
xhr.open("GET", "http://test.com/"); // определяем параметры для запроса
// добавляем обработчики событий
xhr.upload.addEventListener("progress", updateProgress);
xhr.upload.addEventListener("load", updateComplete);
xhr.upload.addEventListener("error", updateFailed);
xhr.upload.addEventListener("abort", updateCanceled);
xhr.send(); // отправляем запрос на сервер