使用谷歌Chrome瀏覽器的內存使用情況,假設我用ajax如下下載文件作爲BLOB:與XHR BLOB的responseType器(Chrome)
var xhr = new XMLHttpRequest();
xhr.open('GET', 'some/path', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
//Save xhr.response using FileSystem API
};
xhr.send();
我需要擔心內存使用在這裏(假設該文件下載可能會非常大,或者我可能以這種方式下載大量文件)?
我的理解是,因爲我指定的是'blob'而不是'arraybuffer'的responseType,所以下載的數據不會被加載到Javascript可用的內存中。但是,下載的數據必須存儲在某個地方。它只是存儲在內存中,還是瀏覽器會在必要時將其放入某種內存不足的高速緩存中?如果它在內存中被佔用,有什麼辦法讓我在完成它之後處理它(即在我的示例中,一旦我使用FileSystem API保存它)。