HTML 解析和 Dom 树构造

HTML Parsing and Dom Tree construction

提问人:Thelostcause 提问时间:2/28/2021 最后编辑:Thelostcause 更新时间:11/19/2022 访问量:293

问:

所以我一直在努力了解浏览器是如何工作的,这让我头晕目眩。我读过几篇关于它的文章,但所有这些文章都不像它应该的那样清楚。

任何人都可以帮我详细了解浏览器的工作原理。 这是我到现在为止的理解:

考虑这个索引.html作为参考:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./styles.css"
    <title>Browser Working</title>
</head>
<body>
    <h1>Help me to understand this</h1>
</body>
</html>

所以我知道当我点击服务器时,客户端将以原始形式(数据字节)获取索引 .html。 我们的浏览器将尝试将此原始数据转换为字符(使用我们在文件中提到的字符编码如果我错了,请更正)。

编码成功后,或者说文件的字符转换。它将经历“代币化过程”。然后 HTML 解析器开始发挥作用,它将从标记化过程创建节点,然后将它们链接到文档对象树(也称为 DOM)中。

我想知道,当HTML解析器读取/遇到链接TAG时,它是否会向服务器发送css文件的请求?如果是,我知道相同的过程将继续进行(即原始数据 -> 字符 -> tokens -> node -> CSSOM),如果它会发出请求,那么 HTML 解析器会停止解析,直到完整的 CSSOM 完成吗?节点建设会停止吗?如果节点构造停止,那么 DOM 构造也会停止。

如果没有,Request for Css 文件何时发送到服务器,我的意思是在哪一步? 在代币化期间?在 HTML 解析(节点创建)或 DOM 构建期间(当节点在 DOM 中链接时)。还告诉我在上述任何步骤发送请求时执行是否会停止

谢谢

dom 浏览器 html 解析

评论

0赞 meghahere 11/10/2021
我希望这是一篇有用的文章 developer.mozilla.org/en-US/docs/Glossary/Parse

答: 暂无答案