我正在與C#上的進度條和網頁瀏覽器控件一起工作,但我不知道如何在瀏覽時創建一個流暢的進度條,你是否一步一步地創建它,我將不勝感激。如何使瀏覽器導航時進度條可以正常工作?
回答
一個進度條只有在你知道之前這個動作你要做多少時纔有用。對於加載網頁來說,這意味着要知道每個將要加載的資源的大小。這不是真的可行。也有不能真正預測的其他部分:
- DNS查找
- 打開到服務器的連接
- 資源從其他資源,如裝一個JavaScript嵌入另一個CSS或CSS參考圖像
- ...
所有主流瀏覽器早已放棄了試圖表明進步加載一個頁面;現在他們只是顯示加載活動。
WebBrowser控件有ProgressChanged
event但我不知道它有多可靠。但這可能是你最好的嘗試。儘管如此,上面提到的所有問題仍然適用。您和瀏覽器都不知道如何使進度條準確無誤,因此它可能是一個粗略的近似值(從加載HTML開始並代表已加載的附加資源開始),或者當總資源估計錯誤時它會混亂或甚至倒退。
是的也許,但你知道如何在Web瀏覽器上實現進度改變的事件嗎? – 2012-08-05 06:58:16
這不完全正確。我的瀏覽器顯示一個進度條。我相信它在收到標題後會出現;可能是如果存在「Content-Length」。 – mpen 2012-08-05 07:02:08
其實我已經實現了後臺工作人員控制來監視瀏覽器的進度,但它仍然無法獲得整個過程。例如,我點擊了網絡上的鏈接,然後進度條不會產生任何影響,因爲我無法在進度更改事件上實施它。 – 2012-08-05 16:02:39
使用WebBrowser.ProgressChanged
事件:
private void WebBrowser1_ProgressChanged(Object sender,
WebBrowserProgressChangedEventArgs e)
{
progressBar.Maximum = (int) e.MaximumProgress;
progressBar.Value = (int) e.CurrentProgress;
}
此代碼不處理webbrowser返回超出範圍值的情況 – 2015-06-11 14:14:32
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
progressBar1.Maximum = 100;
progressBar1.Minimum = 0;
if ((e.CurrentProgress > 0) && (e.CurrentProgress < 100))
{
progressBar1.Value = (int)e.CurrentProgress;
}
}
- 1. 如何使導航器正常工作?
- 2. web瀏覽器不能正常工作
- 3. Chrome瀏覽器無法正常工作
- 4. 如何使iframe在iOS Safari瀏覽器中正常工作
- 5. 是否可以確定Web瀏覽器是否正在導航?
- 6. 垂直導航在IE瀏覽器中工作不正確
- 7. Combobox進度條無法正常工作
- 8. Android進度條無法正常工作
- 9. c#進度條無法正常工作
- 10. qt進度條不能正常工作
- 11. 進度條無法正常工作
- 12. 進度條無法正常工作
- 13. 使用進度10.2b如何讓滾動條正常工作
- 14. Flex在Firefox和Chrome瀏覽器中正常工作時無法正常工作
- 15. 導航進度條
- 16. 在Chrome瀏覽器以外的所有瀏覽器上都能正常工作
- 17. 使用Rspec進行測試會出錯,但使用瀏覽器進行測試可以正常工作
- 18. Angular 2路線在瀏覽器瀏覽器時無法正常工作
- 19. 打開瀏覽器不能正常工作時,鉻是默認瀏覽器
- 20. 如何配置cometd以使用谷歌瀏覽器正常工作?
- 21. cURL導致503;頁面在瀏覽器中正常工作。
- 22. 如何隱藏瀏覽器導航?
- 23. 爲什麼點擊事件可以在Firefox中正常工作,但IE瀏覽器不能正常工作
- 24. Web瀏覽器控件的進度條
- 25. 跨瀏覽器圓進度條
- 26. 導航瀏覽器轉到
- 27. C#Web瀏覽器導航
- 28. SOAPUI:HTTPS超時但瀏覽器正常工作
- 29. 當瀏覽器刷新時,角度應用程序無法正常工作
- 30. React-native導航進度條
你的意思是進度條或一個通用的動畫?也許是一個沙漏光標,而它正在加載? – 2012-08-05 06:57:00
不,我的意思是一個進度條,所以我知道加載網頁的進度。 – 2012-08-05 07:00:04