我正在寻找可以帮助我在Windows服务应用程序中不使用WebBrowser()来获取网页加载时间的代码。
我经历了不同的方法,但我不太明白。
请帮我解决这个问题。
答案 0 :(得分: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
,它将用于计算操作所花费的时间,然后它会创建一个指向该URL的Web请求。它下载整个页面的源代码(通过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())