Существует событие progress
, которое запускается при загрузке каждого файла, однако его полезная нагрузка не включает имя файла в любом браузере, с которым я тестировал (Chrome, Safari, FF beta). Chrome отображает имя файла в консоли (хотя, насколько я знаю, оно недоступно для JS), но ни Safari, ни FF даже не заходят так далеко. И из того, что я видел, файлы загружаются не в том порядке, в котором они перечислены в манифесте, поэтому даже нет способа создать упорядоченный список, а затем выбрасывать их по одному за раз.
Так что в ответ на ваш вопрос, нет, сейчас нет никакого способа сделать это. Возможно, что в будущем событие progress
будет включать имя файла - по крайней мере, в некоторых браузерах - но сейчас это невозможно.
Я должен добавить, что в Chrome (не в Safari или FF) вы можете по крайней мере получить количество загружаемых файлов, что позволит вам по крайней мере рассчитать точный индикатор выполнения. Чтобы получить это в Chrome, вы должны использовать следующее:
function downloadProgress(e) {
totalfiles = Number(e.total);
}
window.applicationCache.addEventListener("progress", downloadProgress, false);
Однако это приведет к ошибке в других браузерах, поэтому вам нужно обернуть try/catch
или другой метод (typeof(e.total)
), чтобы избежать ошибки.