4

StackOverflow 上还有其他问题与我想知道的很接近,例如Webkit GTK :: How to detect when a download has done? ,但我想我在问一些不同的东西:

一般来说,在事件驱动的 C Webkit-GTK API 中有很多事件可能与某个文档何时完成“加载”的想法有关。问题是文档非常稀疏,“完成加载”的概念并不一定清楚,因为它可以引用很多东西。“完成加载”是否意味着文件已完成下载?它已经完成了 DOM 树的创建?它已完成下载,包括所有其他资源(如 CSS、JS 和图像文件?)

相关信号是signal::notify::load-statusdocument-load-finishedresource-load-finished

每次负载状态发生变化时都会触发该load-status信号,因此您每次都需要手动调用webkit_web_view_get_load_status并检查状态。即便如此,当状态 finally 为 时WEBKIT_LOAD_FINISHED,我不确定这意味着什么——这是否意味着 WebKit 已经完成了资源的下载,或者它已经完成了 DOM 树的创建,还是什么?

问题:

各种“完成”信号之间有什么区别,是否有任何信号等效于标准 Javascript DOM 事件window.onload

4

1 回答 1

0

我相信该document-load-finished信号是您正在寻找的信号,因为它似乎(在我看来)更接近于您要测试的信号。

测试哪种方法是正确的方法的一个想法是测试测试文档是否已手动“加载”的各种方法。即尝试我上面链接的那个,并在值为真时向终端输出一个字符串。如果该值在页面完全显示其所有内容之前为真,则很可能它不是您想要的。然后继续下一个,直到找到正确的。

除此之外,我不确定您还能做什么,因为正如您所提到的,定义不是很清楚。像这样的时候,我希望 Gtk 文档更冗长一些。

于 2013-11-26T10:44:39.943 回答