2012-08-01 101 views
2

我使用IdHTTP.get來獲取URL的HTMl,但是在這個url中是一個使用ajax加載的表,我必須等待幾秒鐘才能加載並獲得頁面的HTML。我如何等待用idHTTP加載Ajax?

我可以等嗎?

+0

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

回答

2

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