2016-01-06 58 views

回答

1

這個功能應該做的伎倆:

Public Function WebpageResponseTime(ByVal URL As String) As TimeSpan 
    Dim sw As New System.Diagnostics.Stopwatch 
    sw.Start() 

    Dim wRequest As WebRequest = HttpWebRequest.Create(URL) 
    Using httpResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse) 
     If httpResponse.StatusCode = HttpStatusCode.OK Then 
      sw.Stop() 
      Return sw.Elapsed 
     End If 
    End Using 
End Function 

這將只需要源代碼的下載進去。如果你想計算下載源代碼和渲染頁面需要多長時間,你必須使用WebBrowser類。

工作原理:

的函數聲明,並開始將被用於計算操作了多長時間一個Stopwatch,那麼它會創建一個Web請求到指定的URL。它下載整個頁面的源代碼(通過HttpWebResponse),然後檢查響應的StatusCode

StatusCode.OK(這是HTTP狀態代碼200)意味着請求成功並且所請求的信息(網頁的源代碼)在響應中,但由於我們不會使用源代碼來處理任何事情該響應後來被Using/End Using塊處置。

最後,該功能停止Stopwatch並將經過的時間(下載網頁源代碼需要多長時間)返回給您。

使用例:

Dim PageLoadTime As TimeSpan = WebpageResponseTime("http://www.microsoft.com/") 
MessageBox.Show("Response took: " & PageLoadTime.ToString()) 
+1

您可以通過使用'System.Diagnostics.Stopwatch'代替'DateTime' –

+0

@JoelCoehoorn好這一提高,但什麼是它的/改進有什麼區別? –

+1

http://stackoverflow.com/questions/2923283/stopwatch-vs-using-system-datetime-now-for-timing-events –

相關問題