我需要检测一个网页及其所有内容和嵌入的 URL、图像、音频、视频等何时被完全下载。我调试了文件 docshell/base/nsDocShell.cpp --> nsDocShell::LoadURI()。它清楚地表明页面加载已完成,但唯一的问题是我仍然可以看到正在进行的页面下载,而上面的 API 指示页面下载已结束。有人可以帮忙吗,我在寻找/挖掘错误的位置吗?我不必编写 AddOn 或 Extension,而只需挖掘基础源代码并获取信息。
问问题
133 次
1 回答
0
好吧,没有单一的“全部下载”状态。下载“所有内容”后,解析器可能仍处于活动状态,随着解析更多图像标签和脚本标签等而导致更多下载。解析器甚至可能会暂停,例如遇到同步脚本标签时。
最接近的“全部完成”状态可能是 whendocument.readyState
设置为"complete"
,并且文档的load
/error
事件被分派。这发生在(IIRC)中nsDocumentViewer::LoadComplete
。
即使这样,由于脚本插入新标签、触发 CSS 规则、XMLHttpRequests 等,也可能会加载更多外部资源。由于这个原因,现代网站从未完全加载。
于 2013-10-29T11:13:22.113 回答