"怎么知道WebBrowser执行AJAX完成看似简单超级难题": 如何知道webbrowser执行ajax完成(看似简单超级难题)
比如用 webbrowser打开一个新浪博客(新浪博客,的读书数 评论数是用ajax输出的)
webbrowser.navigate("");
如何知道ajax已经执行完毕(即评论数 ,回复数已经显示)
研究了很久webbrowser底层都没找到方法
------解决方案--------------------
不懂,帮顶~。。。
------解决方案--------------------
mark 观察
------解决方案--------------------
mark
------解决方案--------------------
不懂
有没有啥啥啥callback之类的东西,ajax都是需要回调的吧
纯粹瞎猜
------解决方案--------------------
异步ajax是不知道什么时候完成的。
------解决方案--------------------
ajax 实质上是调用xmlhttprequest来异步进行后台的通讯
网上有这么一端话
xml code
xmlhttprequest对象暴露各种属性、方法和事件以便于脚本处理和控制http请求与响应。下面,我们将对此展开详细的讨论。
readystate属性
当xmlhttprequest对象把一个http请求发送到服务器时将经历若干种状态:一直等待直到请求被处理;然后,它才接收一个响应。这样以来,脚本才正确响应各种状态-xmlhttprequest对象暴露一个描述对象的当前状态的readystate属性,如表格1所示。
表格1.xmlhttprequest对象的readystate属性值列表。
readystate取值 描述
0 描述一种"未初始化"状态;此时,已经创建一个xmlhttprequest对象,但是还没有初始化。
1 描述一种"发送"状态;此时,代码已经调用了xmlhttprequest open()方法并且xmlhttprequest已经准备好把一个请求发送到服务器。
2 描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应。
3 描述一种"正在接收"状态;此时,已经接收到http响应头部信息,但是消息体部分还没有完全接收结束。
4 描述一种"已加载"状态;此时,响应已经被完全接收。
onreadystatechange事件
无论readystate值何时发生改变,xmlhttprequest对象都会激发一个readystatechange事件。其中,onreadystatechange属性接收一个eventlistener值-向该方法指示无论readystate值何时发生改变,该对象都将激活。
------解决方案--------------------
还有
xml code
responsetext属性
这个responsetext属性包含客户端接收到的http响应的文本内容。当readystate值为0、1或2时,responsetext包含一个空字符串。当readystate值为3(正在接收)时,响应中包含客户端还未完成的响应信息
此文来自: 马开东博客 转载请注明出处 网址:
。当readystate为4(已加载)时,该responsetext包含完整的响应信息。 responsexml属性 此responsexml属性用于当接收到完整的http响应时(readystate为4)描述xml响应;此时,content-type头部指定mime(媒体)类型为text/xml,application/xml或以+xml结尾。如果content-type头部并不包含这些媒体类型之一,那么responsexml的值为null。无论何时,只要readystate值不为4,那么该responsexml的值也为null。 其实,这个responsexml属性值是一个文档接口类型的对象,用来描述被分析的文档。如果文档不能被分析(例如,如果文档不是良构的或不支持文档相应的字符编码),那么responsexml的值将为null。 status属性 这个status属性描述了http状态代码,而且其类型为short。而且,仅当readystate值为3(正在接收中)或4(已加载)时,这个status属性才可用。当readystate的值小于3时试图存取status的值将引发一个异常。 statustext属性 这个statustext属性描述了http状态代码文本;并且仅当readystate值为3或4才可用。当readystate为其它值时试图存取statustext属性将引发一个异常。搜索此文相关文章: