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();
ここでメモリの使用について心配する必要がありますか (ダウンロードしたファイルが非常に大きいか、この方法で大量のファイルをダウンロードする可能性があると仮定します)?
私の理解では、「arraybuffer」ではなく「blob」の responseType を指定しているため、ダウンロードされたデータは Javascript で使用可能なメモリにロードされません。ただし、ダウンロードしたデータはどこかに保存する必要があります。メモリに保存されているだけですか、それともブラウザは必要に応じてメモリ不足のキャッシュに入れますか? メモリに保持されている場合、処理が完了したら破棄する方法はありますか (つまり、私の例では、FileSystem API を使用して保存した後)。