阅读完浏览器如何工作和浏览器渲染流程之后,我仍然对当遇到<script>
标签时浏览器的解析过程有些困惑,这些文章并没有很好地覆盖这一点。
主要过程如下图所示:
假设我们有一个简单的 HTML 页面:
<html>
<head>
<link rel="stylesheet" href="main.css">
<script src="main.js"></script>
<link rel="stylesheet" href="another.css">
</head>
<body>
</body>
</html>
问题:
- 浏览器是单线程的,那么HTML解析器和CSS解析器如何并行工作?
- 在HTML解析器中,当遇到
<script>
标签时,浏览器是否会暂停直到JS文件下载并完全执行?例如,在这个例子中,浏览器将不会下载another.css
,直到main.js
下载并执行完成吗?
script
标签,浏览器无论在哪里等待它(头部或正文):例如,当它在头部时,浏览器会在呈现正文之前完全停止解析它。 - Maen