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