我想在下载文件时显示进度条。
AJAX代码:
$.ajax({
async: true,
xhr: function() {
var xhr = new window.XMLHttpRequest();
console.log(xhr);
xhr.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = (evt.loaded / evt.total) *100;
$("div.progress > div.progress-bar").css({ "width": percentComplete + "%" });
}
},false);
return xhr;
},
url: $("#CardExportCardsForm").attr('action'),
data: $("#CardExportCardsForm").serialize(),
success: function(data){
//console.log(data);
}
});
HTML code:
进度条:
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;">
</div>
</div>
AJAX请求工作正常。它获得了成功的响应,文件正在成功。
但是,它并没有在任何地方显示下载进度。我甚至尝试在日志中打印percentComplete,但无济于事。
任何帮助都将受到高度赞赏。
提前致谢!
答案 0 :(得分:0)
ProgressEvent.lengthComputable只读属性是一个布尔值 指示ProgressEvent所关注的资源是否具有的标志 可以计算的长度。如果没有,则为ProgressEvent.total 财产没有重大价值。
它与所有浏览器不兼容,因为您可以查看here