記憶盒子

把記憶裝進灰色的盒子,封裝起來,那年那月,重新拾起。

首頁搜索目錄
search
當前主題: 軟件編程

asp.net實現的計算網頁下載速度的方法

作者:Kaka    時間:2011-6-11 23:8:19    瀏覽:    評論:7

      剛看到有人給出asp.net實現的計算網頁下載速度的方法,本方法未經本人測試,不知道能否可靠性如何。準確來說,這只是個思路吧。

      private   void   getSpeed() 
      { 
      //鏈接開始時間 
      DateTime   stime   =   DateTime.Now; 
      //文件 
      string   url   =   "http://xxx.com/images/test.jpg "; 
      WebRequest   myRequest   =   WebRequest.Create(url); 
      //鏈接成功 
      WebResponse   myReponse   =   myRequest.GetResponse(); 
      //取得文件的大小 字節單位 
      int   ii   =   int.Parse(myReponse.ContentLength.ToString()); 
      //取得流 
      Stream   myStream   =   myReponse.GetResponseStream(); 
      StreamReader   sr   =   new   StreamReader(myStream); 
      byte[]   mbyte=new   byte[ii]; 
      int   allbyte=(int)mbyte.Length; 
      int   startbyte=0; 
      string   test   =   " "; 
      while(ii> 0)     //################       循環讀取文件,并顯示進度..... 
      { 
      int   m=myStream.Read(mbyte,startbyte,allbyte); 
      if(m==0){break;} 
      startbyte+=m; 
      allbyte-=m; 
      int   a1=(int)startbyte/1024; 
      int   a2=(int)ii/1024; 
      test+= "連接成功..開始下載..m= "+m+ "| "   +   a1.ToString()   +   "/ "   +   a2.ToString()   +   "KB ";//startbyte   +   "/ "   +   ii.ToString(); 
      } 
      //鏈接結束時間 
      DateTime   etime=DateTime.Now; 
      TimeSpan   ts   =   etime   -   stime; 
      //總共耗時  
      double   SpeedTime   =   (double)   ts.TotalSeconds; 
      double   Kbps   =   0; 
      double   ShowPer   =   0; 
      if   (SpeedTime> 0) 
      { 
      //網絡速度 
      Kbps   =   Math.Round(Math.Round(ii*8/1024/SpeedTime*10.5)/10); 
      //Kbps   =   Math.Round(ii/1024/   SpeedTime); 
      } 
      else 
      { 
      Kbps   =   10000; 
      } 
      //用來顯示當前流量所要顯示的圖片長度 
      ShowPer   =   Math.Round(Kbps/100); 
      if   (ShowPer <1) 
      ShowPer   =   1; 
      else   if(ShowPer> 82) 
      ShowPer   =   82; 
      //網絡速度 
      string   sp   =   (Math.Round(Kbps/8*10)/10).ToString(); 
      sr.Close(); 
      myStream.Close(); 
      myReponse.Close(); 
      // Response.Write(test); 
      Response.Write( "網絡速度 "+sp+ "圖片長度$ "+ShowPer+ "耗時$ "+SpeedTime+ "文件大小$ "+ii); 
      Response.End(); 
      }

      最后有網友又給出了實現的另一思路:

      用一個頁面輸出一個3M的網頁(通過一個循環輸出字節),然后異步去請求這個頁面,計算開始時間與結束時間的差,然后再去計算。

      思路還是老樣,就是用webRequest去獲取流文件就只是取得響應時間,但是得不得輸出時間(自己的水平有限,不過我想肯定可以實現)。現在只是換了一個方法去獲取輸出時間。我在baidu與google也是只查到異步獲取文字內容輸出時間可以。但是有圖片的就好像有點困難了。

      不過最終的結果得到了,還是有點成績感的。呵呵。。。

標簽: Asp.net  

加入本站QQ群(312716741),交流分享網站建設、優化、SEO技術。。。

 

上一篇: 誰取走了我Google AdSense賬戶里的錢?
下一篇: 這樣設置可以提高Gmail打開速度
  • 3.山***
  • 哇,,這個好厲害。。謝了。。
    由 Kaka 于 2011-6-16 17:38:23 最后編輯
  • 2011-6-16 16:02:43 回復該留言

發表評論:

◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

訂閱博客                   QQ交流群(312716741)

  • 通過Google訂閱本站 通過鮮果訂閱本站 通過抓蝦訂閱本站
  • 通過QQ郵箱訂閱本站 通過Yahoo訂閱本站 通過有道訂閱本站

Search

最新評論及回復

最近留言

網站分類

Powered By Z-Blog 1.8 Walle Build 91204 Designed by Han'space

Copyright @2009-2019 All Rights Reserved. 粵ICP備14028160號-1

Powered By Z-Blog 1.8 Walle Build 91204
Copyright @2009-2019 All Rights Reserved.
微拍福利