WebBrowser通过Navigate加载网页为什么在程序中效率如此之低?如何提升
Sub getHTML(url_str As String)
Dim doc As Object
Web.Navigate url_str
getCODE FolderName, localfiles
End Sub
Private Sub getCODE(path_name As String, localFile As String)
Dim doc As Object
If InStr(Web.Document.documentElement.innerHTML, "无法显示") > 0 Then
getHTML sUrt
End If
Set doc = Web.Document
Set objhtml = doc.body.createTextRange()
If Not IsNull(objhtml) Then
Open path_name & "\" & localFile For Output As #1
Print #1, objhtml.htmlText;
Close #1
End If
End Sub
我是用上面两个sub 分别load网页在webbrowser控件里面显示-为了防止timeout 反复load直到load complete。然后再保存到本地指定目录中 生成txt文档。
现在发现在gethtml这个sub里面浪费了大量的时间 这个是什么问题啊 我直接用ie打开那个连接都没有那么多时间阿,有什么办法提升效率吗?
问题点数:50、回复次数:2Top
1 楼hein(hein)回复于 2006-06-02 23:05:33 得分 0
我最近才开始用VB和网络控件的,遇到问题到这里来问,看到这个
就顺便说说我的用法吧,可能对你会有帮助
我试过连续加载很保存不同的页面,感觉使用Web.Navigate 之后delay一下比较有效率
Web_Browser.Navigate url_str
Web_Browser.Refresh '我发现refresh一下更有效…这个只是个人用下来的感觉
Timer1.Interval = 1000
Timer1.Enabled = True '在里面放Timer1.Enable = False
Do
DoEvents
Loop While Timer1.Enabled = True
Do While Web_Browser.Busy
If form_quit = True Then GoTo sub_end
DoEvents
LoopTop
2 楼hein(hein)回复于 2006-06-02 23:10:01 得分 0
第一次在这里发帖,不小心点了一下就发出去了,怎么修改不会,接上面的回帖继续吧……
If form_quit = True Then GoTo sub_end这个不是的……可以忽略
然后就可以用你那个
Set doc = Web.Document
Set objhtml = doc.body.createTextRange()进行保存了
另外,把ie设置里面高级部分的显示图片音乐之类的关闭,会大大提高效率……
初学者,仅供参考……^__^Top




