有展現真正的百分比兩種方式。簡而言之...
一個 - 舊學校原生JavaScript或jQuery ajax,你需要服務器支持,以及一個不同的URL,它可以給你更新。而且你一直在間隔點擊該URL。
兩個 - HTML5瀏覽器中的現代原生JavaScript,支持XMLHTTPRequest2,也被稱爲AJAX 2,由新的Web和HTML5標準定義。
如果兩個,歡迎來到新網站!
多種功能已添加到瀏覽器中,以增強連接性 - 屬於HTML5功能的一部分。
XMLHTTPRequest2啓用AJAX中的事件以幫助監視進度以及JavaScript本身的許多其他事情。
var oReq = new XMLHttpRequest();
oReq.addEventListener("progress", updateProgress, false);
oReq.addEventListener("load", transferComplete, false);
oReq.addEventListener("error", transferFailed, false);
oReq.addEventListener("abort", transferCanceled, false);
oReq.open();
然後你可以自定義上(進步你的情況)附加的處理程序:您可以通過監測實際進展顯示真正百分比
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
var percentComplete = oEvent.loaded/oEvent.total;
// ...
} else {
// Unable to compute progress information since the total size is unknown
}
}
jQuery的可以用在第二種情況也是如此。畢竟,jQuery是用更少的代碼來幫助你,更多的是做!希望您專注於HTML5和新的Web解決方案,我會指出您從我採取此解決方案的地方獲得的Mozilla DOC - Monitoring Progress in AJAX。
每個瀏覽器現在都有一個網頁文檔(如上面的Mozilla文檔),此外,他們都爲一個名爲Web Platform的常見合作伙伴以及其他有影響力的Web和Internet巨頭做出了貢獻 - 用於共同更新的Web文檔。這是一項正在進行的工作,因此不完整。
另外,在舊的AJAX中沒有本地功能,監視進度。
在老派的方式,你將不得不創建一個間隔函數,將繼續擊中一個單獨的URL來獲取進度更新。您的服務器還必須更新進度並將其作爲來自不同端口的URL的響應發送。
有點[研究](http://stackoverflow.com/questions/10559264/possible-to-calculate-how-much-data-been-loaded-with-ajax) –