jack2684 发表于 2011-9-3 17:26:50

請教資深人士,IELoadWait通過什麽判斷網頁加載完成? [未解决]

本帖最后由 jack2684 于 2011-9-22 08:34 编辑

他的第一的參數是一個對象,那麼意思是他可以判斷網頁某一小塊區域加載完成是嗎?

更重要的問題是,如果一個網頁是用jsp寫的,那麼點擊一些局部刷新他能知道嗎?

(抱歉那個源文件看得有點暈所以就很無恥地直接來問人啦~~)

unique009 发表于 2011-9-3 19:37:32

网页吗,肯定只有一个</html>啊

cxlater 发表于 2011-9-3 23:47:49

应该是根据状态栏进度条

jack2684 发表于 2011-9-12 22:46:35

回复 2# unique009


    网页如果用了frame的话就不会只有一个html了....

ghl781258 发表于 2011-9-13 15:50:20

应该是通过事件或消息吧

netegg 发表于 2011-9-13 18:14:53

瞎指条路,端口没流量了就是完了,或者是没有接收数据了(不管是完整不完整),传递过程结束

紫色风林 发表于 2011-9-16 23:54:54

搞不懂,顶一下

zhongzijie 发表于 2011-9-23 01:16:53

我也搞不懂,期待高手分析一下原理

happytc 发表于 2011-9-23 02:57:02

本帖最后由 happytc 于 2011-9-23 02:59 编辑

回复 1# jack2684

①若第一参数是浏览器对象,则不停地调用WebBrowser的ReadyState 属性,若Object.readyState == 4或String(o_object.readyState) == "complete",则表示加载完成了。

②若第一参数是Window/Frame等对象(也就是你所谓的‘網頁某一小塊區域’),则可以不停地调用浏览器的文档属性:document.readyState,若object.document.readyState == 4 或String(object.document.readyState) == "complete"则表示该Window/Frame加载完毕。
若第一参数是DOM对象,也就是object.document.parentWindow,也是调用文档属性来判断

当然你要进一步问ActiveX控件或IE浏览器又是如何知道呢,那就是要了解TCP/IP协议的原理了,其核心简单说起来也就是三次握手成功后建立了一个连接,于是服务器和客户端开始互传数据。最后服务器会在报文里告诉客户端什么时候数据传完了,客户端会告诉服务器我收到了那些数据。当数据传完了,ActiveX控件或IE就把readyState/document.readyState设为4,表示完成了。

bakefish 发表于 2011-9-24 10:21:06

回复jack2684

①若第一参数是浏览器对象,则不停地调用WebBrowser的ReadyState 属性,若Object.ready ...
happytc 发表于 2011-9-23 02:57 http://www.autoitx.com/images/common/back.gif


    赞!

gooker 发表于 2011-10-13 20:44:52

回复 1# jack2684


难道不知道看一下ie.au3的源码吗。。

haodd 发表于 2011-10-17 18:16:19

楼上的回答给力!
页: [1]
查看完整版本: 請教資深人士,IELoadWait通過什麽判斷網頁加載完成? [未解决]