Spec-Zone.ru › Web APIs

XMLHttpRequest: событие load

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

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

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

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

Событие load срабатывает, когда транзакция XMLHttpRequest завершается успешно.

Синтаксис

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

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

onload = (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("image.jpg");
});

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

xhrButtonAbort.addEventListener("click", () => {
  runXHR("image.jpg").abort();
});

Результат

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

Спецификация
XMLHttpRequest
# event-xhr-load
XMLHttpRequest
# handler-xhr-onload

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

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

См. также

  • Связанные события: loadstart, loadend, progress, 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/load_event

Spec-Zone.ru

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