如何通过简单的方式通过纯js​​创建进度条

时间:2014-08-26 08:46:36

标签: javascript php ajax

我想知道是否有任何简单的方法可以使用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-此代码不适用于上传请求。

现在我想知道有没有办法改善这个或者更好的方法呢?

提前感谢...

0 个答案:

没有答案