Существует событие progress
, которое запускается при загрузке каждого файла, однако его полезная нагрузка не включает имя файла ни в одном браузере, который я тестировал (Chrome, Safari, бета-версия FF). 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)
), чтобы избежать ошибки.
person
ggutenberg
schedule
25.02.2011