【发布时间】:2010-11-11 16:27:56
【问题描述】:
信息:我对javascript一无所知。没有。
我很好奇是否有任何方法可以确定网页何时完全加载?假设我有一个爬虫,它使用 webkit 来呈现页面(以及 webkit 的 JS 引擎来解析任何 JS 函数并完成处理 DOM 等),我很好奇是否有任何方法可以知道网页何时“完成”加载?我认为要做的事情:
1) 所有脚本都已执行完毕。 2) 没有未决的 AJAX 调用。 3) DOM 完全根据当前可用的信息处理和加载。
对于一个更具体的假设,通过查看一些网站的来源,我发现它们通过使用将内容注入 DOM 的脚本标签来加载广告,并发出 AJAX 调用来加载和填充广告。如何确定这一切何时完成?
(我想用任何异步替换示例。我只是想不出比上面更通用的东西。)
我所说的“检测”是指以任何可能的方式。例如,在页面中注入一些 JS 代码,向页面写入一些内容,让我知道事情已经完成。或者例如使用 QtWebkit,JS 可以调用 C++(我相信),因此 JS sn-p 可以调用 C++ 函数来让它知道页面何时“加载”。简而言之,无论什么都行。
当前的“幼稚”实现我只是在加载页面后坐下来等待几秒钟。这很愚蠢。
请尽可能详细,如果在我理解答案之前需要更多背景信息,请随时说“先阅读本文”。
非常感谢!
【问题讨论】:
标签: javascript qt webkit rendering webpage-rendering