使用 Google Chrome,假设我使用 ajax 将文件下载为 blob,如下所示:
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();
我是否需要担心这里的内存使用(假设下载的文件可能非常大,或者我可能会以这种方式下载大量文件)?
我的理解是,由于我将 responseType 指定为“blob”而不是“arraybuffer”,因此下载的数据不会加载到 Javascript 可用的内存中。但是,下载的数据必须存储在某个地方。它只是存储在内存中,还是浏览器会在必要时将其放入某种内存不足的缓存中?如果它被保存在内存中,有什么方法可以让我在完成后处理它(即,在我的示例中,一旦我使用 FileSystem API 保存它)。