各ファイルのダウンロード時にトリガーされるイベントがありますがprogress
、そのペイロードには、私がテストしたブラウザー(Chrome、Safari、FFベータ版)のファイル名が含まれていません。Chromeはコンソールにファイル名を表示しますが(私が知る限り、JSにアクセスできないことを知っていますが)、SafariもFFもそれほど遠くまでは行きません。そして、私が見たところ、ファイルはマニフェストにリストされているのと同じ順序でダウンロードされないため、順序付きリストを生成して一度に1つずつノックオフする方法すらありません。
ですから、あなたの質問に答えて、いいえ、今のところこれを行う方法はありません。将来、progress
イベントにファイル名が含まれる可能性があります(少なくとも一部のブラウザでは)が、現時点ではこれは不可能です。
Chrome(SafariやFFではない)では、少なくともダウンロードするファイルの数を取得できるので、少なくとも正確なプログレスバーを計算できることを付け加えておきます。Chromeでこれを取得するには、次を使用します。
function downloadProgress(e) {
totalfiles = Number(e.total);
}
window.applicationCache.addEventListener("progress", downloadProgress, false);
ただし、これは他のブラウザではエラーになるため、エラーを回避するには、try/catch
または他のメソッド( )をラップする必要があります。typeof(e.total)