html的执行顺序

时间:2013-04-17 13:15:52

标签: javascript html parsing iframe web

我想知道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的新手)

2 个答案:

答案 0 :(得分:0)

确切的时间取决于浏览器。在page1准备就绪之前,应先下载page2并准备就绪。但是,在开始下载和解析page1之前,page2尚未就绪。

答案 1 :(得分:0)

完成的实际订单取决于浏览器,但在典型的浏览器中,它首先在您正在访问的页面中构建HTML树,然后对其进行处理。当它处理iframe时,它会去请求该页面。

现在,由于HTML是从服务器下载的,所以这很复杂,所以从部分树开始,它甚至可以在第1页的一半之前从iframe开始下载内容。

外卖虽然是你不应该依赖这种行为。