我如何等待用idHTTP加载Ajax?

问题描述:

我使用IdHTTP.get来获取URL的HTMl,但是在这个url中是一个使用ajax加载的表,我必须等待几秒钟才能加载并获得页面的HTML。我如何等待用idHTTP加载Ajax?

我可以等吗?

+0

您是否需要执行任何ajax请求?或特定的? – jachguate 2012-08-02 01:07:05

Ajax使用客户端脚本向服务器发送后台HTTP请求,并操纵已在浏览器中加载的HTML页面。 TIdHTTP将下载原始HTML数据,但是您必须自己执行Ajax脚本,并自己发送这些额外的请求,如果您希望它执行某些操作。 TIdHTTP(和Indy一般)无法为您处理Ajax。

+0

是的,我知道,但我的意思是,我如何等待完成加载后10秒例如,然后用TidHTTP读取HTML。 – SadeghAlavizadeh 2012-08-02 10:33:19

+1

你错过了这一点。一旦TIdHTTP下载了最初的HTML,就是这样。 WebBrowser然后解析并显示该HTML,执行Ajax脚本,然后使用它自己的连接向服务器发送其他HTTP请求,并相应地更改WebBrowser的解析内容,而不是原始HTML。 TIdHTTP下载的HTML不会是Ajax生成的内容。 – 2012-08-02 18:44:20

+3

如果您想模拟Ajax的功能,您必须下载原始HTML并将其存储到一边,然后解析它以确定Ajax脚本会产生哪些HTTP请求,自己发送这些HTTP请求,从而接收响应服务器,并相应地更新保存的HTML数据的相关部分。 – 2012-08-02 18:45:34