網路測速一原理及例項

jian436發表於2009-12-15
  •  
  • 本文來自:http://struts.blog.ccidnet.com/blog-htm-itemid-239706-uid-6587-do-showone-type-blog.html 作  者:jstruts
    原理:利用img元素的 onload 事件求得img載入的速度既網路速度 asp程式碼如下 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <center>
    <span id=showtxt>
    <span id=imgs>
    <span id="percenttitle">
    <form action="guide.asp" name="speedform" method="post">
    <input type="hidden" name="avrspeed">

    </form> </center> <script language="javascript" type="text/javascript" src="percent.js"> </script>

     <img src="img.jpg?id=<%=Imgrandom%>" width=0 height=0 onerror = showerr() onload="showspeed();">

     <script language="javascript" type="text/javascript">

     window.status = "測速中,請稍候..."

     var st = new Date()

     var i=0

     var totalspeed=0

     function showspeed()

     {  var number = Math.floor(Math.random()*1000000) +200000;

     i++ //迴圈控制 10次

    var fs = 104 //img.jpg檔案大小(K)

     var l = 2 //小數點的位數

     var et = new Date()

    alltime = fs*1000/(et - st) time=alltime

     Lnum = Math.pow(10,l)

     calcspeed = Math.round(alltime*Lnum)/Lnum*8

     if(i <11){ totalspeed=totalspeed+calcspeed;

     PaintPercent("_PercentBar",10*i, "安裝進度",true,20);//進度條顯示控制

    percenttitle.innerHTML=(10*i+"%");

     var imgstr="<img src='img.jpg?id="+number+"' width=0 height=0 onerror = showerr()>";

     imgs.innerHTML = (imgstr); st=et; } else{ percenttitle.innerHTML=("測速完畢,轉向生成報告...."); document.speedform.avrspeed.value=Math.round(totalspeed/10);//四捨五入結果賦給

    speedform.avrspeed window.setTimeout(rendresult,2000);//兩秒後提交表單,轉向結果頁面(結果頁面還有其它功能,這裡先不詳述)。 } }

    function rendresult() { speedform.submit(); }

    function showerr() { showtxt.innerHTML = ("資料下載錯誤,請重新整理重試")

     window.status = "資料下載錯誤,請重新整理重試" } </script> </BODY> </HTML>

 

相關文章