Firefox C++源代码帮助来检测页面结束内容下载

Firefox C++ Source Code help for detecting end of page content download

本文关键字:结束 下载 检测 C++ 源代码 帮助 Firefox      更新时间:2023-10-16

我需要检测网页及其所有内容和嵌入式URL,图像,音频,视频等何时完全下载。我调试了文件 docshell/base/nsDocShell.cpp --> nsDocShell::LoadURI()。它清楚地表明页面加载已完成,但唯一的问题是我仍然可以看到正在进行的页面下载,而上面的 API 指示页面下载已结束。有人可以帮忙吗,我是否寻找/挖掘错误的位置?我不必编写插件或扩展,而只需深入研究基本源代码并获取信息。

好吧,没有单一的"全部下载"状态。下载"所有内容"后,解析器可能仍处于活动状态,随着解析更多图像标签和脚本标签,导致更多下载,依此类推。解析器甚至可能暂停,例如,当遇到同步脚本标签时。

document.readyState设置为 "complete" 并且调度文档的 load/error 事件时,可能会出现最接近的"全部完成"状态。这发生在 (IIRC) 在 nsDocumentViewer::LoadComplete .

即便如此,由于脚本插入新标记、触发 CSS 规则、XMLHttpRequest 等,可能会加载更多的外部资源。由于这个原因,现代网站从未完全加载。