1

オフラインで実行し、オンラインでもう一度同期できるようにする必要がある Chrome 拡張機能を作成する必要があるプロジェクトを開始しています。したがって、Chrome拡張機能がファイルをダウンロードして、ファイルごとにユーザーにプロンプ​​トを表示せずにローカルに保存する手段があるかどうかを知りたいです(ファイルの量はかなりの量になる可能性があります)

同様のことができる chrome.storage モジュールを見たことがありますが、ファイルが多い場合のパフォーマンスが心配です。パフォーマンスに関する情報があれば、私も興味があります。

編集: Chrome のファイルシステム機能でテストしました。ソースは次のとおりです。

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

function onError(e) {
  console.log('Error', e);
}

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://upload.wikimedia.org/wikipedia/fr/2/26/10_francs_Mathieu_1987_F365-28_revers.jpg', true);
xhr.responseType = 'blob';

xhr.onload = function(e) {

window.requestFileSystem(PERSISTENT, 1024 * 1024, function(fs) {alert(fs.root.name);}, onError);

  window.requestFileSystem(PERSISTENT, 1024 * 1024, function(fs) {
    fs.root.getFile('image.jpg', {create: true}, function(fileEntry) {
      fileEntry.createWriter(function(writer) {

        writer.onwrite = function(e) {};
        writer.onerror = function(e) {};

        var blob = new Blob([xhr.response], {type: 'image/jpeg'});

        writer.write(blob);

      }, onError);
    }, onError);
  }, onError);
};

xhr.send();

動作しているように見えますが、ファイルがどこにも表示されません。絶対パスを指定するなど、保存パスに別のことを試みましたが、成功しませんでした。何か案が?

4

0 に答える 0