Как рассчитать объем данных возобновления и паузы в индикаторе выполнения

Как я могу рассчитать полученные данные после приостановки и возобновления функции.

Я работаю над загрузкой файлов, включая паузу и возобновление загрузки.

Он делает паузу в порядке, но когда я возобновляю его, он не доходит до 100%. он останавливается до 100%

  function download_file(event, filename) {
          req2 = request({
            method: 'GET',
            uri: fileURL
          });
            var out = fs.createWriteStream(finalPath);
            req2.pipe(out);
            req2.on('response', function(data) {
total_bytes = parseInt(data.headers['content-length']);
    progressBar.max = total_bytes;
    total_size = total_bytes;
            });
            req2.on('data', function(chunk) {
                    received_bytes += chunk.length;
 console.info(received_bytes);
progressBar.value = received_bytes;
display.innerText = Math.round((progressBar.value / progressBar.max) * 1000) / 10 + '%'
              }
            });
        };

    function pause22() {
      console.info('pause function called');
      req2.pause();
    }

        function resume22() {
          console.info('RESUME function called');
 progressBar.max=progressBar.max-progressBar.value;
  console.info(progressBar.max);
  console.info(progressBar.value);
   progressBar.value = received_bytes;
   received_bytes= progressBar.value;
  req2.resume();
        }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предполагая, что вы хотите продолжить загрузку с того места, на котором остановились, и что вы сохраняете «total_bytes» и «received_bytes» в качестве глобальных переменных, тогда ваш индикатор выполнения просто восстановит их. Ваше резюме22 должно быть...

function resume22() {
      console.info('RESUME function called');
      progressBar.max=total_bytes;
      console.info(progressBar.max);
      progressBar.value = received_bytes;
      console.info(progressBar.value);
      req2.resume();
    }

да, именно этого я и хочу! Во-первых, спасибо за ваш ответ! К сожалению, ваш код не работает.. когда я останавливаюсь на 11% и возобновляю работу через 1 минуту, он заканчивается на 36%.

g.developer 14.02.2019 09:05

Он начинается с 11% после того, как вы приостановили его на 11%? Также мне интересно, есть ли буферизация в потоке загрузки, которая влияет на воспринимаемый прогресс. Проверяйте глобальные переменные при входе в функцию Pause, чтобы убедиться, что они соответствуют вашим ожиданиям.

cgts 14.02.2019 13:01

Другие вопросы по теме