javascript中的文件下载进度

时间:2011-02-22 09:25:30

标签: javascript xmlhttprequest

我正在开发一个javascript函数,它使用XMLHttpRequest下载文件并分配给变量。我被要求提供下载进度的状态(例如提供下载百分比)。

我使用getResponseHeader(“Content-Length”)(下载的数据量)和总下载文件大小(这始终是常量)计算下载百分比。这适用于FF和Chrome,但不适用于IE(argh !!)。

我知道IE在readyState = 3时不提供getResponseHeader(“Content-Length”),所以我一直在寻找替代方案。

有没有人为此找到解决方案?

我遇到了通过向服务器发送第二个ajax请求来轮询下载请求的想法。鉴于HTTP请求是无状态的,并且发送第二个请求将被视为应用程序的新调用,我不确定这是如何实现的。 我不想在服务器中保存一些变量并阅读它。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用:(coffeescript)

xhr.onprogress = (e) ->
    # show progress and size of file.
    console.log "#{Math.round(e.loaded/e.total)*100}% completed"