2013-09-27 75 views
1

我瞭解xhr.upload.onprogress事件(文件上傳)。 像這樣:ajax文件下載:進度事件,供下載

xhr.upload.onprogress = function(e) { // if (e.lengthComputable) ... 
     var percentUploaded = Math.floor(100 * e.loaded/e.total); 
     progressBarElem.value = percentUploaded; 
     messageAreaElem.innerHTML = percentUploaded + "% uploaded"; 
    } 

但對於xhr.onprogress事件,這是文件下載從服務器?

我找不到一個簡單的例子。

帕特里克

+0

http://stackoverflow.com/questions/18836482/xhr-download-and-upload-progress和https://developer.mozilla .org/zh-CN/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress –

+0

xhr.progress事件的示例在哪裏? (不是xhr.upload.progress) – trogne

+0

試試這個hhttp://stackoverflow.com/a/42235655/2282880 – Meloman

回答

0

正如Document說:

進度事件兩者存在下載和上傳傳輸。下載事件在XMLHttpRequest對象上觸發,如上例所示。上傳事件在XMLHttpRequest.upload對象上觸發。

您可以嘗試使用下面的代碼來驗證

var progress = 0.1; 

var oReq = new XMLHttpRequest(); 

//Download progress 
oReq.addEventListener("progress", function(evt){ 
    if (evt.lengthComputable) { 
    var percentComplete = evt.loaded/evt.total; 
    //Do something with download progress 
    console.log(evt.total); 
    if(percentComplete > progress){ 
     console.log("Finish " + progress * 100 + "%."); 
     progress += 0.1; 

    } 
    } 
}, false); 

oReq.open("get", "url", true); 
oReq.send(); 
+0

我沒有得到任何事件... – Michael