ProgressEvent.lengthComputable
ProgressEvent.lengthComputable只读属性是一个布尔型标志,指示ProgressEvent相关的资源是否具有可以计算的长度。如果不是,则ProgressEvent.total属性没有重大价值。
因此,在您的情况下,如果您进行一点调试,您将发现
evt.lengthComputable = false;您无法跟踪进度;
xhr.addEventListener("progress", function (evt) { console.log(evt.lengthComputable); // false if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; progressElem.html(Math.round(percentComplete * 100) + "%"); } }, false);FYI
如果
lengthComputable中的false为
XMLHttpRequestProgressEvent,则表示服务器从不发送
Content-Length header响应。



