信息:我不知道的JavaScript。沒有。什麼時候被認爲是「加載」的網頁,在JS等存在
我很好奇,如果有什麼方法可以確定網頁何時完全加載?比方說,我有一個爬蟲,它使用webkit來渲染頁面(和webkit的JS引擎來解析任何JS函數,並完成處理DOM等),我很好奇,如果有什麼方法知道網頁何時「完成」加載?我認爲要做的事:
1)所有的腳本都已經完成執行。 2)沒有待處理的AJAX調用。 3)根據當前可用的信息完整處理和加載DOM。
對於一個更具體的假設,通過查看幾個網站的來源,我發現他們通過使用腳本標記來加載廣告,該標記注入DOM中的東西,併發出AJAX調用來加載和填充廣告。如何確定這一切何時完成?
(通過任何異步替換的例子,我想,我只是想不出什麼比上述更普遍的。)
通過「檢測」,我的意思是,在任何方式可能。例如,將一些JS代碼注入頁面,將某些內容寫入頁面以讓我知道所做的事情。或者例如用QtWebkit,JS可以調用C++(我相信),所以JS片段可以調用C++函數來讓它知道頁面何時「加載」。無論什麼作品,總之。
當前'天真'的實現,我剛剛坐着,並在加載一頁後等待幾秒鐘。這很傻。
請儘可能詳細,如果在理解答案之前需要更多背景信息,請隨時說'先閱讀'。
非常感謝!
使用loadFinished(bool)似乎並不能保證所有腳本至少執行過一次。只是資源已被下載。 – 2010-11-11 08:29:34
你如何定義「所有腳本已經執行」?任何加載了'