我正在使用
XMLHttpRequest(使用jQuery)来获取多个文件的上传进度.通过向XMLHttpRequest对象添加一个“进度”事件侦听器,我可以获取event.loaded和event.total.这些变量给出了所有文件的加载和总字节数.
我想做的是获取每个单独文件的进度,但从我可以看到该信息不可用于XMLHttpRequest.真的吗?
我不认为这是必要的,但我的代码是:
var xhr = $.ajaxSettings.xhr(); if (xhr.upload) { xhr.upload.addEventListener('progress',function(event) { var percent = 0; var position = event.loaded || event.position; var total = event.total; if (event.lengthComputable) { percent = Math.ceil(position / total * 100); } updateProgressBar(percent); },false); } return xhr;
如果我可以用XMLHttpRequest来完成这个,那将是很棒的.任何有关这方面的信息将不胜感激.
解决方法
这是我用的,
$.ajax({ xhr: function () { myXhr = $.ajaxSettings.xhr(); myXhr.addEventListener('progress',function (e) { },false); if (myXhr.upload) { myXhr.upload.onprogress = function (e) { var completed = 0; if (e.lengthComputable) { var done = e.position || e.loaded,total = e.totalSize || e.total; completed = Math.round((done / total * 1000) / 10); } console.log(completed); // Displays the completed percentage } } return myXhr; } });