ProgressEvent
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна в Потоках Web Workers.
Интерфейс ProgressEvent представляет события, измеряющие прогресс базового процесса, например, HTTP-запроса (для XMLHttpRequest, или загрузки базового ресурса <img>, <audio>, <video>, <style> или <link>).
Конструктор
ProgressEvent()-
Создает событие
ProgressEventс заданными параметрами.
Свойства экземпляра
Также наследует свойства от родительского класса Event.
-
ProgressEvent.lengthComputableТолько для чтения -
Флаг булевого типа, указывающий, можно ли вычислить отношение между размером уже переданных или обработанных данных (
loaded) и общим размером данных (total). Другими словами, он показывает, можно ли измерить прогресс или нет. -
ProgressEvent.loadedТолько для чтения -
Целое беззнаковое 64-битное число, указывающее размер данных, уже переданных или обработанных, в байтах. Отношение можно вычислить, разделив значение
ProgressEvent.totalна значение этого свойства. При загрузке ресурса с помощью HTTP, учитывается только тело HTTP-сообщения, а не заголовки и другие накладные расходы. Обратите внимание, что для сжатых запросов неизвестного общего размера,loadedможет содержать размер сжатых или распакованных данных, в зависимости от браузера. На 2024 год, Firefox содержит размер сжатых данных, а Chrome – размер несжатых данных. -
ProgressEvent.totalТолько для чтения -
Целое беззнаковое 64-битное число, указывающее общий размер, в байтах, передаваемых или обрабатываемых данных. При загрузке ресурса с помощью HTTP, это значение взято из
Content-Lengthзаголовка ответа. Учитывается только тело HTTP-сообщения, а не заголовки и другие накладные расходы.
Методы экземпляра
Наследует методы от родительского класса Event.
Примеры
В следующем примере добавляется ProgressEvent к новому XMLHTTPRequest и используется для отображения состояния запроса.
const progressBar = document.getElementById("p"),
client = new XMLHttpRequest();
client.open("GET", "magical-unicorns");
client.onprogress = (pe) => {
if (pe.lengthComputable) {
progressBar.max = pe.total;
progressBar.value = pe.loaded;
}
};
client.onloadend = (pe) => {
progressBar.value = pe.loaded;
};
client.send();
Спецификации
| Спецификация |
|---|
| XMLHttpRequest # interface-progressevent |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
ProgressEvent |
16 | 14 | 18 | ≤12.1 | 6 | 18 | 18 | ≤12.1 | 6 | 1.0 | 4.4 |
ProgressEvent |
1 | 12 | 3.5 | ≤12.1 | 3.1 | 18 | 4 | ≤12.1 | 2 | 1.0 | ≤37 |
lengthComputable |
1 | 12 | 3.5 | ≤12.1 | 3.1 | 18 | 4 | ≤12.1 | 2 | 1.0 | 4.4 |
loaded |
1 | 12 | 3.5 | ≤12.1 | 3.1 | 18 | 4 | ≤12.1 | 2 | 1.0 | ≤37 |
total |
1 | 12 | 3.5 | ≤12.1 | 3.1 | 18 | 4 | ≤12.1 | 2 | 1.0 | ≤37 |
worker_support |
47Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
79Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
54 | 34Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
10 | 47Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
54 | 34Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
10 | 5.0Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
47Доступно в специализированных и общих потоках, недоступно в рабочих потоках сервиса. См. ошибку 332663431. |
См. также
- Базовый интерфейс
Event.
© 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/ProgressEvent