Я пытаюсь реализовать поведение на стороне клиента, когда файл начинает загружаться, пока клиент все еще получает чанкированные ответы.Я хочу показать в панели загрузки, что файл уже загружается до достижения функции загрузки.Это мой код прямо сейчас, и происходит следующее: загрузка начинается только после обработки всех чанков.
const xhr = new XMLHttpRequest()
xhr.open('POST', url, true);
xhr.withCredentials = false;
xhr.onprogress = function () {
console.log('LOADING', xhr.status);
csvContent += xhr.responseText + '\r\n';
}
xhr.onload = function () {
console.log('DONE', xhr.status);
const encodedUri = encodeURI(csvContent);
const link = document.createElement('a');
link.setAttribute('href', encodedUri);
link.setAttribute('download', 'my_data');
document.body.appendChild(link); // Required for FF
link.click();
};
xhr.send(JSON.stringify(requestPayload));
В заголовке ответа я также получаю:
Content-Распоряжение: вложение;filename = "file.csv"
Спасибо!