ajax獲取上傳進度


$.ajax({   type: "post",   url: uploadUrl,   data: formData,   processData: false,   contentType: false,   xhr : function() { //獲取ajaxSettings中的xhr對象,為它的upload屬性綁定progress事件的處理函數     myXhr = $.ajaxSettings.xhr();     if (myXhr.upload) { //檢查upload屬性是否存在      //綁定progress事件的回調函數       myXhr.upload.addEventListener(         'progress',         progressHandlingFunction,         false);       }       return myXhr; //xhr對象返回給jQuery使用     },   beforeSend: function() {     ot = new Date().getTime(); //設置上傳開始時間     oloaded = 0;//設置上傳開始時,以上傳的文件大小為0     console.log("開始上傳")   },   success: function (data) {     console.log("上傳成功")   },   error: function (e) {     console.log("上傳失敗")   } }); function progressHandlingFunction(evt) { var nt = new Date().getTime();//獲取當前時間 var pertime = (nt-ot)/1000; //計算出上次調用該方法時到現在的時間差,單位為s ot = new Date().getTime(); //重新賦值時間,用於下次計算 var perload = evt.loaded - oloaded; //計算該分段上傳的文件大小,單位b oloaded = evt.loaded;//重新賦值已上傳文件大小,用以下次計算 //上傳速度計算 var speed = perload/pertime;//單位b/s var bspeed = speed; var units = 'b/s';//單位名稱 if(speed/1024>1){ speed = speed/1024; units = 'k/s'; } if(speed/1024>1){ speed = speed/1024; units = 'M/s'; } speed = speed.toFixed(1); //剩余時間 var resttime = ((evt.total-evt.loaded)/bspeed).toFixed(1); var percent = evt.loaded / evt.total * 100; console.log('當前速度:'+speed+units+',剩余時間:'+resttime+'s,當前進度:'+percent.toFixed(2)+"%") }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM