在IE中获取AJAX下载进度

时间:2012-11-15 17:11:22

标签: ajax internet-explorer

XMLHttpRequest.responseText.length之外还有其他方法可以获取AJAX请求的当前下载进度吗?

我问这个是因为IE只是放弃了“数据尚未可用”的错误。其他浏览器没有问题,但我希望能够至少给出一些进展指示。

2 个答案:

答案 0 :(得分:0)

你应该为IE和其他浏览器定义单独的对象

if (window.XMLHttpRequest)
{
    req = new XMLHttpRequest();
    req.setRequestHeader('Content-Type', 'application/x-www-formurlencoded');
    req.send(data);
}    // branch for IE/Windows ActiveX version

else if (window.ActiveXObject)
{
req = new ActiveXObject('Microsoft.XMLHTTP');
.
.
.
}

你知道有多个xmlhttp

xmlhttp1.0,2.0,...

或者你可以制作一个try-catch块

答案 1 :(得分:0)

关于Internet Explorer的progress事件支持is limited to version 10,但您未指定版本...

rq.onprogress = function(e) {
    if(e.lengthComputable) {
        progressElement.textContent = Math.floor(e.loaded / e.total * 100) + "%";
    }
};