簡體   English   中英

webBrowser.DocumentCompleted計時

[英]webBrowser.DocumentCompleted Timing

我們如何計算時間? 我的意思是,當單擊時,它應該開始(時間),加載頁面完成后才停止。 當您在google中搜索時,它會向您顯示一段時間。 在圖像上,我顯示出我想要的

foreach (string bug in bugs)
{
    webBrowser.Navigate(new Uri(url));
    webBrowser.Document.GetElementById("product").SetAttribute("value", product);
    webBrowser.Document.GetElementById("version").SetAttribute("value", version);
    webBrowser.Document.GetElementById("commit").InvokeMember("click");

    //Need code to wait for page to load before continuing.
}

Google計時

好吧,這很容易,首先,NC = NavigateComplete事件,DC = DocumentComplete事件,WB是程序中WebBrowser1(或WebBrowser)控件的名稱。

現在,您基本上可以獲得第一個NC事件的滴答聲(或時間)和最后一個DC事件的滴答聲(或時間),然后從DC時間中減去NC時間。 另外,在觸發NC時,您要在NC事件中檢查pDisp屬性,如果它等於WB.object如果是,則告訴您它是頁面上的頂級文檔,這很有用如果有幀,因為可能會發生多個。 同樣,最重要的是,頂級文檔NC事件始終總是首先發生。

其次,頂級文檔DC事件總是最后發生,因此在進行DC計時之前,請檢查以確保WB.object與DC事件中的WB.object是同一對象。

要進行檢查,請在VB中進行如下操作(與C#類似):

進行此檢查並在NC事件中保存時間,對DC事件進行相同的操作,同時當然將時間保存在第二個全局變量中,因此以后可以減去它們。

NC事件:

If pDisp Is WB.object Then
  ' I use this API, but there are better ways to do this in .NET,
  ' such as DateTime.Now.
  tNCTime = GetTickCount() 
End If

DC事件:

If pDisp Is WB.object Then
  ' I use this API, but there are better ways to do this in .NET,
  ' such as DateTime.Now.
  tDCTime = GetTickCount()

  ' You can do this elsewhere, but here is fine too, since when this occurs,
  ' we know loading is done.
  tResult = tDCTime - tNCTime ' More details on this below...

End If

當然,聲明應該放在某個地方的全局模塊中,具體取決於代碼的結構,如果它們都在同一個命名空間中,則無需進行全局聲明。

Dim tNCTime As DateTime
Dim tDCTime As DateTime
' Below Only if using DateTime.Now, declare as Integer if you're using Tick Counts.
Dim tResult As TimeSpan

現在,執行WB.object檢查的優點在於,它還可以告訴您網頁加載完畢的時間:)...,因此在DC事件的IF If If End If檢查中,您可以放置​​計算:)。 涼?

如果您使用滴答計數,它以毫秒為單位,因此請不要忘記除以1000以秒為單位,並確保將其保存為雙精度或十進制,因為整數或長整數會導致溢出。

讓我知道這是否對您有用,以及我是否正確理解了您的問題。 如果還有其他可以幫助的事情,請告訴我。 我喜歡回饋本網站上對我有很大幫助的人們。 (霍拉@Hans Passant,如果您正在閱讀呵呵)。

PS:此外,由於您是新用戶,因此如果回答了您的問題,請不要忘記接受作為“答案”,因此該問題將不再出現在“未回答”部分中。

你為什么不使用document.cookie =“”; 存儲頁面的請求時間並在頁面加載時從存儲的cookie中獲取時間,並與當前時間進行比較以獲取差異並顯示出來

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM