1GBファイルをダウンロードするXHRオブジェクトがあります。 Javascriptの大きなblobファイル
function getFile(callback)
{
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (xhr.status == 200) {
callback.apply(xhr);
}else{
console.log("Request error: " + xhr.statusText);
}
};
xhr.open('GET', 'download', true);
xhr.onprogress = updateProgress;
xhr.responseType = "arraybuffer";
xhr.send();
}
しかし、ファイルのAPIも、労働者 それはメモリ不足のスローからメモリにすべてのことをロードすることはできません...
btn.addEventListener('click', function() {
getFile(function() {
var worker = new Worker("js/saving.worker.js");
worker.onmessage = function(e) {
saveAs(e.data); // FileSaver.js it creates URL from blob... but its too large
};
worker.postMessage(this.response);
});
});
ウェブワーカー
onmessage = function (e) {
var view = new DataView(e.data, 0);
var file = new File([view], 'file.zip', {type: "application/zip"});
postMessage('file');
};
私は」ファイルを圧縮しようとしていない場合、このファイルはすでにサーバーから圧縮されています。
私はのIndexedDBに最初にそれを保存すると思ったけど、私はすぐに、私は、範囲バイトで要求を行う場合でも、BLOBを読み込むか、とにかく提出する必要があるでしょうか遅い私はこの巨大なブロブを構築する必要があります。..
私はblob:URLを作成してブラウザにダウンロードされた後にユーザに送信します。
Google Chrome用のFileSystem APIを使用しますが、Firefox用のものを作りたいと思っています。
Google ChromeのFileSystemと同じ機能を実行するには、firefoxの拡張機能をビルドする必要がありますか? AJAXと
Ubuntuの32ビット
それが仕事でしたができれば良いでしょう、これを確認することはできませんか?エラーは、私には馴染みがあり、「メモリ不足」です。 – Hydro
うーん、それは大規模なリアリティだけのために働いた –
うーん... btnクリックイベントが発生したときに何か警告することはできますか?エラーがスローされたら、ここに届いたアラートの量をお知らせください – Hydro