曼菲士 发表于 2011-3-19 11:24:30

[已解决]请问,如何检测网页加载完成,但又不影响循环执行?

本帖最后由 曼菲士 于 2011-3-20 14:15 编辑

例如,我同时打开5个网页,我想检测这5个网页是否加载完成,如果没完成则去执行其它操作,等到5个全加载完成后再读取它们的网页源码获取相关内容,现在用_IELoadWait有个问题,在检测一个网页是否完成时,如果它没加载完成,无法执行其它子程序,只有它检测到完成了才能返回到我们自己的代码执行下一步代码,我想,如果 _IELoadWait能实现检测一次,完成则返回1,未完成返回0该多好,检查了一下IE.AU3里的代码,太复杂,水平有限,看不太懂,目前能想到的是用多进程来解决,但还未尝试,请大家帮忙看还有没有其它更好的办法。

xlcwxl 发表于 2011-3-19 11:59:28

估计这个很难,跟网速有很大的关系

曼菲士 发表于 2011-3-19 13:41:12

想要的_IELoadWait只是判断网页是否加载完成,返回参数给调用者,假设完成返回1,未完成返回0,在执行一次的过程中不用等待,不管完成与否给个结果就行了,我可以用定时循环来判断几时得到的是完成即可。

republican 发表于 2011-3-19 13:56:32

回复 3# 曼菲士

函数正如其名,LoadWait的功能就是加载中等待。

要想实现你的目的,请参考WebBrowser事件。

3mile 发表于 2011-3-19 15:07:19

只为获取网页源的话不如用_INetGetSource函数

曼菲士 发表于 2011-3-19 16:16:00

只为获取网页源的话不如用_INetGetSource函数
3mile 发表于 2011-3-19 15:07 http://www.autoitx.com/images/common/back.gif


    那个网页有检测,_Inet不能获取,得到的只是网页的非法浏览提示信息。

bakefish 发表于 2011-3-19 22:30:29

加载完成的网页标题栏有变化吗?还有是否可以通过查看页面某一标志性tag来判断页面已符合要求。

ceoguang 发表于 2011-3-19 23:15:28


#include <IE.au3>
Global $Complete, $oIE, $iComplete, $Url = ["www.google.com", "www.autoitx.com", "www.autoitscript.com"]
For $i = 0 To 2
        $oIE[$i] = _IECreate($Url[$i], 0, 1, 0)
Next
AdlibRegister("State", 100)
While Not($Complete)
        Sleep(100)
WEnd
ConsoleWrite("Done!" & @LF)

Func State()
        Local $State
        If $Complete Then Return AdlibUnRegister("State")
        For $i = 0 To 2
                If Not $iComplete[$i] Then
                        $State = _IEPropertyGet($oIE[$i], "readyState")
                        If String($State) = "complete" Or $State = 4 Then
                                $iComplete[$i] = Not $iComplete[$i]
                                ConsoleWrite($Url[$i] & " Download Complete!" & @LF)
                        EndIf
                EndIf
        Next
        If $iComplete And $iComplete And $iComplete Then $Complete = Not $Complete
EndFunc   ;==>State

曼菲士 发表于 2011-3-20 14:15:02

谢谢版主,这方法行!

laot 发表于 2011-7-10 21:47:01

留记号,以备参考

tianrenhao 发表于 2011-10-24 15:13:12

参考使用,记录!

hzxymkb 发表于 2011-12-3 20:54:23

做个记号先,过几天用得上!

elec 发表于 2014-5-22 07:06:39

非常好的思路!!

逆水风帆 发表于 2014-12-7 22:02:47

感谢lz分享哈,真的很赞呢

zisedefeng 发表于 2015-1-25 16:55:58

感谢lz分享,非常好的思路!!
页: [1] 2
查看完整版本: [已解决]请问,如何检测网页加载完成,但又不影响循环执行?