«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу отслеживать обновления хода выполнения XMLHttpRequest в веб-браузерах?

Как я могу отслеживать обновления хода выполнения XMLHttpRequest в веб-браузерах?

Опубликовано 8 ноября 2024 г.
Просматривать:539

How can I track progress updates for XMLHttpRequest in web browsers?

Получение обновлений хода выполнения для XMLHttpRequest

Веб-браузеры предлагают объект XMLHttpRequest (XHR) для обмена данными клиент-сервер. Хотя стандартному API XHR не хватает встроенных возможностей отслеживания хода выполнения, существуют методы для отслеживания хода передачи данных.

Загружено байт:

XHR предоставляет файл xhr.upload. Событие onprogress для мониторинга хода загрузки данных. Поскольку браузер отслеживает как общий размер данных, так и объем загруженных данных, он может предоставлять точную информацию о ходе загрузки.

Загружено байт:

Отслеживать ход загрузки сложнее, поскольку браузер не знает размера данных, которые будут отправлены с сервера, пока они не поступят. Одним из решений является установка заголовка Content-Length в серверном сценарии, указывающего общий размер отправляемых данных. Имея этот заголовок, браузер может точно отслеживать ход загрузки.

Пример реализации:

Следующий код демонстрирует отслеживание хода загрузки файла с использованием пользовательского интерфейса jQuery. для отображения индикатора выполнения:

function updateProgress(evt) {
  if (evt.lengthComputable) {
    // evt.loaded: bytes received
    // evt.total: total bytes (from the Content-Length header)
    var percentComplete = (evt.loaded / evt.total) * 100;
    $('#progressbar').progressbar('option', 'value', percentComplete);
  }
}

function sendreq(evt) {
  var req = new XMLHttpRequest();
  $('#progressbar').progressbar();
  req.onprogress = updateProgress;
  req.open('GET', 'test.php', true);
  req.onreadystatechange = function (aEvt) {
    if (req.readyState == 4) {
      // Handle the response here
    }
  };
  req.send();
}

Установка заголовка Content-Length в серверном скрипте обеспечивает точное отслеживание процесса загрузки и выгрузки данных.

Вывод:

Хотя в стандартном API XHR отсутствуют встроенные возможности отслеживания хода выполнения, описанные выше методы позволяют разработчикам отслеживать ход передачи данных в веб-приложениях. Устанавливая соответствующие заголовки Content-Length и используя обработчики событий JavaScript, разработчики могут создавать интуитивно понятные и удобные интерфейсы, которые предоставляют пользователям обновления в режиме реального времени.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3