我有一个文件" file.json"我知道是1MB。在javascript中有什么方法当我对文件执行ajax请求时,我可以根据文件的大小显示进度条吗? (即如果客户已经检索到500KB,进度条显示50%,等等?
答案 0 :(得分:2)
在MDN页面上关于Monitoring Progress:
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();
// ...
// progress on transfers from the server to the client (downloads)
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
var percentComplete = oEvent.loaded / oEvent.total; // THIS IS WHAT YOU NEED
// ...
} else {
// Unable to compute progress information since the total size is unknown
}
}
function transferComplete(evt) {
alert("The transfer is complete.");
}
function transferFailed(evt) {
alert("An error occurred while transferring the file.");
}
function transferCanceled(evt) {
alert("The transfer has been canceled by the user.");
}