Spec-Zone.ru › Web APIs

XMLHttpRequest: событие progress

Базовая поддержка Широко распространена

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

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

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

Событие progress срабатывает периодически, когда запрос получает больше данных.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.

addEventListener("progress", (event) => {});

onprogress = (event) => {};

Тип события

Объект ProgressEvent. Наследуется от Event.

Событие ProgressEvent

Свойства события

Помимо перечисленных ниже свойств, доступны свойства из родительского интерфейса Event.

lengthComputable Только для чтения

Логический флаг, указывающий, может ли быть рассчитана общая работа, выполняемая базовым процессом, и объем уже выполненной работы. Другими словами, он показывает, можно ли измерить прогресс или нет.

loaded Только для чтения

Значение 64-битного беззнакового целого числа, указывающее объем работы, уже выполненной базовым процессом. Пропорция выполненной работы может быть рассчитана путем деления значения этого свойства на total. При загрузке ресурса с помощью HTTP, учитывается только тело HTTP-сообщения, а не заголовки и другие накладные расходы.

total Только для чтения

64-битное беззнаковое целое число, представляющее общий объем работы, выполняемой базовым процессом. При загрузке ресурса с помощью HTTP, это Content-Length (размер тела сообщения), а не заголовки и другие накладные расходы.

Примеры

Пример

HTML

<div class="controls">
  <input
    class="xhr success"
    type="button"
    name="xhr"
    value="Click to start XHR (success)" />
  <input
    class="xhr error"
    type="button"
    name="xhr"
    value="Click to start XHR (error)" />
  <input
    class="xhr abort"
    type="button"
    name="xhr"
    value="Click to start XHR (abort)" />
</div>

<textarea readonly class="event-log"></textarea>

JavaScript

const xhrButtonSuccess = document.querySelector(".xhr.success");
const xhrButtonError = document.querySelector(".xhr.error");
const xhrButtonAbort = document.querySelector(".xhr.abort");
const log = document.querySelector(".event-log");

function handleEvent(e) {
  log.textContent = `${log.textContent}${e.type}: ${e.loaded} bytes transferred\n`;
}

function addListeners(xhr) {
  xhr.addEventListener("loadstart", handleEvent);
  xhr.addEventListener("load", handleEvent);
  xhr.addEventListener("loadend", handleEvent);
  xhr.addEventListener("progress", handleEvent);
  xhr.addEventListener("error", handleEvent);
  xhr.addEventListener("abort", handleEvent);
}

function runXHR(url) {
  log.textContent = "";

  const xhr = new XMLHttpRequest();
  addListeners(xhr);
  xhr.open("GET", url);
  xhr.send();
  return xhr;
}

xhrButtonSuccess.addEventListener("click", () => {
  runXHR(
    "https://raw.githubusercontent.com/mdn/content/main/files/en-us/_wikihistory.json",
  );
});

xhrButtonError.addEventListener("click", () => {
  runXHR("http://i-dont-exist");
});

xhrButtonAbort.addEventListener("click", () => {
  runXHR(
    "https://raw.githubusercontent.com/mdn/content/main/files/en-us/_wikihistory.json",
  ).abort();
});

Результат

Спецификации

Спецификация
XMLHttpRequest
# event-xhr-progress
XMLHttpRequest
# handler-xhr-onprogress

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
progress_event 1 12 1 ≤12.1 3 18 4 ≤12.1 1 1.0 ≤37

См. также

  • Связанные события: loadstart, load, loadend, error, abort
  • Мониторинг прогресса

© 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/XMLHttpRequest/progress_event

Spec-Zone.ru

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