有一个progress
事件会在每个文件下载时触发,但其有效负载不包含我测试过的任何浏览器(Chrome,Safari,FF测试版)中的文件名。 Chrome会在控制台中显示文件名(尽管据我所知它不能被JS访问),但Safari和FF甚至都没有。从我所看到的文件不会按照它们在清单中列出的顺序下载,所以甚至没有办法生成有序列表,然后一次一个地敲掉它们。
那么,现在回答你的问题,没有,没有任何办法现在就这样做的权利。有可能在将来progress
事件将包含文件名 - 至少在某些浏览器中 - 但现在这是不可能的。
我要补充的是,在浏览器(不是在Safari或FF),你至少可以得到文件的数量要下载,让您至少计算准确的进度条。要在Chrome得到这个你应该使用下列内容:
function downloadProgress(e) {
totalfiles = Number(e.total);
}
window.applicationCache.addEventListener("progress", downloadProgress, false);
然而,这将在其他浏览器报错了,所以你需要用一个try/catch
或其他方法(typeof(e.total)
),以避免错误。
这符合我一直在读什么。我会保持我的手指交叉,这使得未来的规范 – 2011-02-25 19:10:38
我希望如此,但我不会赌它。从我了解他们在HTML5走下路,他们想离开它的浏览器做一个进度条,并显示文件等,并有一种为不同的网站,你可以手动删除文件浏览器。 – Myforwik 2012-11-03 07:59:33
对我来说,Chrome还提供了一个非常方便的'e.loaded'。请注意,您将事件与JQuery绑定为'$(appCache).bind(“progress”,function(event){});'。加载的和总数都会丢失。 – jpprade 2015-04-30 22:16:38