我想知道是否有任何简单的方法可以使用ajax获取请求处理百分比。(不是jQuery)
我尝试了一些方法来自己获得这个百分比。
在我的php文件中我设置了回复content-length
。
然后我将此代码用于进度百分比:
function ajaxPost(url,data,callBack,progress)
{
var postPar = data;
//for(var f in data) postPar += f+'='+data[f]+'&';
var xmlhttp;
if (window.XMLHttpRequest)
xmlhttp = new XMLHttpRequest();
else
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange=function()
{
var percent = 0;
if(xmlhttp.readyState>=3) percent = Math.ceil(xmlhttp.responseText.length*100/xmlhttp.getResponseHeader('Content-length'));
progress(percent);
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
callBack(xmlhttp.responseText);
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(postPar);
}
但有一些问题:
1-我不能将此功能用于除此之外的其他网站。(因为其他网站可能没有content-length
标题)
2-此代码不适用于上传请求。
现在我想知道有没有办法改善这个或者更好的方法呢?
提前感谢...