XMLHttpRequestUpload: событие progress
Базовая поддержка Широко доступно
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Web Workers, за исключением Service Workers.
Событие progress периодически срабатывает, когда запрос получает больше данных.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика события.
addEventListener("progress", (event) => {});
onprogress = (event) => {};
Тип события
Объект ProgressEvent. Наследуется от Event.
Свойства события
Помимо перечисленных ниже свойств, доступны свойства из родительского интерфейса Event.
-
lengthComputableТолько для чтения -
Логическое значение, указывающее, можно ли вычислить общий объём работы и объём выполненной работы основным процессом. Другими словами, показывает, можно ли измерить прогресс.
-
loadedТолько для чтения -
Значение целочисленного беззнакового 64-битного числа, указывающее объём работы, уже выполненный основным процессом. Соотношение проделанной работы можно вычислить, разделив
totalна значение этого свойства. При загрузке ресурса с помощью HTTP учитывается только тело HTTP-сообщения, а не заголовки и другие накладные расходы. -
totalТолько для чтения -
Целочисленное беззнаковое 64-битное число, представляющее общий объём работы, выполняемой основным процессом. При загрузке ресурса с помощью HTTP, это значение равно
Content-Length(размер тела сообщения), не включая заголовки и другие накладные расходы.
Примеры
Использование события progress
Вы можете использовать событие progress для получения информации о прогрессе длительной загрузки. Полный пример кода, который загружает файл и отображает индикатор прогресса, см. на главной странице XMLHttpRequestUpload.
// Each time a progress event is received we update the progress bar
// and the progress message
xhr.upload.addEventListener("progress", (event) => {
progressBar.value = event.loaded; // Update the progress bar
log.textContent = `Uploading (${((event.loaded / event.total) * 100).toFixed(
2,
)}%)…`;
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
progress_event |
2 | 12 | 3.5 | ≤12.1 | 4 | 18 | 4 | ≤12.1 | 3 | 1.0 | ≤37 |
См. также
- Связанные события:
loadstart,load,error,loadend,timeout,abort - Мониторинг прогресса
XMLHttpRequestUpload
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestUpload/progress_event