如何提高网页的下载性能

时间:2014-01-13 11:48:20

标签: javascript html

我实现了计算互联网连接下载速度的功能。使用Ajax我从服务器调用一个php文件,打开一个大文件(比如30MB)并将数据刷新到Web浏览器(客户端)。这适用于Mozilla和Chrome,但是在IE 8中它会卡在中间(因为服务器刷新的数据可能很大)。我在IE 8中使用了xdomainrequest。请让我知道是否有任何改进IE的下载脚本以便我可以获得正确的下载值。

以下是代码段。

function myfun()
{
    try
    {   
        if(BrowserType=="MSIE")
        {
          xhr=new XDomainRequest();
          xhr.onerror = err;
          xhr.ontimeout = timeo;
          xhr.onprogress = progres;
          xhr.onload = loadd;
         // xhr.onabort = stopdata;
          xhr.timeout = 500;            
        }
        else
            xhr = new window.XMLHttpRequest();
        xhr.onreadystatechange=function()
        {
            if(BrowserType!="MSIE")
            {
                var iLen = bufferedData.length;
                if(iLen <= 100000)  
                  bufferedData=bufferedData+xhr.responseText;
            }

            if (xhr.readyState==4 && xhr.status==200)
            {
                //alert(xhr.responseText);
            }
        }       

        xhr.open("GET", "http://myserver/donload.php", true);
        xhr.send();
        if(BrowserType=="MSIE")
        {
            var data=xhr.responseText;
        }
    }
    catch(e)
    {   
        alert(e);       
    }
}

或者有这种方法的替代方案。

Regds

2 个答案:

答案 0 :(得分:0)

尝试jQuery,它有一个ajax方法,适用于每个浏览器。 http://api.jquery.com/jquery.ajax/

这也有助于你:http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/

答案 1 :(得分:0)

我认为你正在尝试一种旧式的方法,使用 JQuery ,这种方法更加简单可靠。

这就是它的外观,非常简单,事实上你不需要这么多杂乱的编码。 IE几乎可以与任何版本一起使用

$.ajax({
  type: "POST",
  url: url, // your url to pass parameters
  data: data, // your parameters
  success: success, // call back result function
  dataType: dataType
});

转到Here并下载最新版本,尝试实施。

以下是beginner教程