用xmlhttp下载是同步的进程, 所以那样

解决方案 »

  1.   

    可以选择异步请求.不过只能用在客户端xmlhttp中
      

  2.   

    通过异步调用的方式,你可以通过处理
    xmlhttp.onreadystatechange来实现数据下载完的动作
      

  3.   

    用了xmlhttp.open("GET",url,true)
    后有问题呀 我怎么才能知道 那个文件已下载下来了呢?
      

  4.   

    通过一个回调来解决,VBS的两个函数用来解决乱码问题
    <script>
    var xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
    function DownloadGet(url){
    result.innerText ="";
    xmlhttp.open("GET",url,true)
    xmlhttp.onreadystatechange=Downloaded;
    alert("发送Get");
    xmlhttp.send();
    }
    function Downloaded(){
    if(xmlhttp.readystate==4){
    result.innerText =bytes2BSTR(xmlhttp.responseBody);
    }
    } <script language ="vbscript">
    Function bytes2BSTR(vIn)
    strReturn = ""
    For j = 1 To LenB(vIn)
    ThisCharCode = AscB(MidB(vIn,j,1))
    If ThisCharCode < &H80 Then
    strReturn = strReturn & Chr(ThisCharCode)
    Else
    NextCharCode = AscB(MidB(vIn,j+1,1))
    strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
    j = j + 1
    End If
    Next
    bytes2BSTR = strReturn
    End Function
    Function URLEncoding(vstrIn)
    strReturn = ""
    For i = 1 To Len(vstrIn)
    ThisChr = Mid(vStrIn,i,1)
    If Abs(Asc(ThisChr)) < &HFF Then
    strReturn = strReturn & ThisChr
    Else
    innerCode = Asc(ThisChr)
    If innerCode < 0 Then
    innerCode = innerCode + &H10000
    End If
    Hight8 = (innerCode  And &HFF00)\ &HFF
    Low8 = innerCode And &HFF
    strReturn = strReturn & "%" & Hex(Hight8) &  "%" & Hex(Low8)
    End If
    Next
    URLEncoding = strReturn
    End Function</script>
    function Downloaded(){
    if(xmlhttp.readystate==4){
    result.innerText =bytes2BSTR(xmlhttp.responseBody);
    }
    }
    </script>
      

  5.   

    可我多个文件如何解决呢
    DownloadGet("1.jpg")
    DownloadGet("2.jpg")
    DownloadGet("3.jpg")
    ...
    DownloadGet("50.jpg")
    这么多文件 大小不一 如何知道他们已全部下载下来呢?
      

  6.   

    在downloaded函数中设置下一个文件的下载入口