我正在开发一个javascript函数,它使用XMLHttpRequest下载文件并分配给变量。我被要求提供下载进度的状态(例如提供下载百分比)。
我使用getResponseHeader(“Content-Length”)(下载的数据量)和总下载文件大小(这始终是常量)计算下载百分比。这适用于FF和Chrome,但不适用于IE(argh !!)。
我知道IE在readyState = 3时不提供getResponseHeader(“Content-Length”),所以我一直在寻找替代方案。
有没有人为此找到解决方案?
我遇到了通过向服务器发送第二个ajax请求来轮询下载请求的想法。鉴于HTTP请求是无状态的,并且发送第二个请求将被视为应用程序的新调用,我不确定这是如何实现的。 我不想在服务器中保存一些变量并阅读它。
任何建议都将不胜感激。
答案 0 :(得分:0)
您可以使用:(coffeescript)
xhr.onprogress = (e) ->
# show progress and size of file.
console.log "#{Math.round(e.loaded/e.total)*100}% completed"