【发布时间】:2013-04-03 23:50:58
【问题描述】:
我正在尝试使用 ajax 实现一个带有上传百分比的标签。问题是xhr返回100%后,到readyState==4和status==200还需要17秒左右。
我正在使用 FormData() 对象发送图片 (png/jpg) 和字符串
<form onclick='send(this)'....
功能是:
function send(form){ var f = new FormData(form).......
我正在使用以下代码进行上传
if(xhr.upload) {
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
var perc = Math.round((e.loaded/e.total) * 100);
var state = {
'done': e.loaded,
'total': e.total,
'percent': perc
};
progress(state);
}
};
}
【问题讨论】:
-
旧方法...如果 readystate!=4 将是 99%
-
那么这完全正常吗?还是我做错了什么?
-
不正常。你应该满足用户。是吗。如果它实际上没有结束并且它显示 100% 那是不正确的。所以显示 99% 直到结束。
-
是的,我知道。我的意思是,如果百分比在显然没有完成的情况下返回 100% 的事实一直发生,或者我的代码被破坏了?
标签: javascript ajax xmlhttprequest progress