我想知道HTML解析器的解析序列。
给出两个html文件:
page1.html
<html>
<body>
<iframe id="x" src="page2.html"></iframe>
<div id="z"></div>
<--! something that need to be parsed -->
</body>
</html>
page2.html
<html>
<body>
<div id="y">
<body>
</html>
我知道iframe标签并行下载src(即HTML解析器解析iframe标签的后续行,尽管iframe src(在示例中为page2.html)尚未下载)。 那么,问题是,何时解析了page2.html ? 换句话说,当div元素(id = y)被添加到DOM树中时? 它是在page1.html中解析代码后完成的,还是在完成page2.html 下载后立即通过blockinig page1.html解析完成?或者,HTML解析器并行解析page1.html和page2.html(同时)?
任何评论和链接将不胜感激。 谢谢!
(如果有错误的问题,请告诉我。实际上,我是JavaScript和HTML的新手)
答案 0 :(得分:0)
确切的时间取决于浏览器。在page1
准备就绪之前,应先下载page2
并准备就绪。但是,在开始下载和解析page1
之前,page2
尚未就绪。
答案 1 :(得分:0)
完成的实际订单取决于浏览器,但在典型的浏览器中,它首先在您正在访问的页面中构建HTML树,然后对其进行处理。当它处理iframe时,它会去请求该页面。
现在,由于HTML是从服务器下载的,所以这很复杂,所以从部分树开始,它甚至可以在第1页的一半之前从iframe开始下载内容。
外卖虽然是你不应该依赖这种行为。