Я пытаюсь отправить файл с XMLHttpRequest на сервер Flask. В основном это то, что я делаю:
<!-- this is the HTML input element -->
<input name="file" type="file" onchange="sendBlob(this.files[0])" multiple>
function sendBlob(file)
{
var chunkSize = 500000000; // 500 MB
var xhr = new XMLHttpRequest();
var blob = file.slice(0, chunkSize, "application/octet-stream");
xhr.open("POST", "http://127.0.0.1:5000/api/get_layout/");
xhr.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
console.log("blob successfully sent.");
}
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("X-Content-Name", "blob");
xhr.send(blob);
}
состояние памяти до xhr.send ()
Эта функция фактически работает и успешно отправляет файл на сервер, но увеличивает оперативную память, не освобождая ее. В частности, он увеличивается ровно на 500 МБ, что соответствует размеру отправляемого большого двоичного объекта.
состояние памяти после xhr.send ()
Что проблема может быть? Я уже знаю, что Javascript имеет сборщик мусора, но кажется, что он не собирает объект xhr после выполнения запроса (т. Е. Сервер вернул код состояния 200).
Если я закрою свой веб-браузер после этого процесса освобождается память. Я не могу понять, почему это происходит.
Спасибо