Загрузка большого файла с информацией о прогрессе (проблема с буферизацией браузера) - PullRequest
0 голосов
/ 28 сентября 2018

В JavaScript я видел несколько реализаций загрузки файла с запросами XHR.

Здесь также есть несколько старых вопросов, таких как Как запретить XMLHttpRequest буферизовать весь ответ но они еще не решены.

Мои цели:

  1. Не буферизировать ответ.
    • Мне нужно загрузить действительно большие файлы.
    • createObjectURL и new Blob не являются вариантами, просто записывает ответ сервера напрямую на диск устройства прямо изначало ответа.
  2. Показывать исходный для браузера статус прогресса загрузки (в идеале процент от загруженного / всего).
    • Частичный ответ от сервера не помог мне показать статус прогресса.Речь шла о буферизации всего ответа, а затем о создании большого двоичного объекта.

Я знаю, это возможно, потому что Google Drive уже доказал это - вы можете нажатьна кнопку загрузки (не ссылка), и загрузка файла начнется, и вы увидите его в статусе выполнения в нижней части экрана:

download status in Chrome from Google Drive

Будет нормально видеть, по крайней мере, неопределенный прогресс, но как это сделать?

Вы знаете, как это сделала команда Google?Может быть, я должен использовать что-то отличное от XHR?

Пожалуйста, поделитесь своими идеями / реализациями.

...