Spec-Zone.ru › Web APIs

ProgressEvent

Базовая Широко доступная *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках Web Workers.

Интерфейс ProgressEvent представляет события, измеряющие прогресс базового процесса, например, HTTP-запроса (для XMLHttpRequest, или загрузки базового ресурса <img>, <audio>, <video>, <style> или <link>).

Событие ProgressEvent

Конструктор

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API