我正在尝试理解CSS在特定环境中的评估方式:
假设我在标签中有以下内容:
现在,假设
现在,进一步假设浏览器已经下载了
请注意,脚本标记不是同步的。
我已经阅读了: https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp 在那里,它说 JavaScript 的执行被阻止,直到 CSSOM 准备好。
现在: 1. 即使尚未到达
请注意,我指的是两件不同的事情:呈现和脚本执行。
假设我在标签中有以下内容:
<html><head>
...
<link href="reset.css" type="text/css" rel="stylesheet">
<link href="style.css" type="text/css" rel="stylesheet">
<link href="autocomplete.css" type="text/css" rel="stylesheet">
</head>
<body>
... html ...
<script type="text/javascript" src="/js/script.js"></script>
</body></html>
现在,假设
reset.css
和 style.css
包含一些立即影响上述折叠内容或 HTML 中元素的规则。然而,autocomplete.css
只包含稍后由某些 JavaScript 使用的类。现在,进一步假设浏览器已经下载了
reset.css
和 style.css
,但是 autocomplete.css
仍在等待中。
我想知道,如果浏览器在页面末尾遇到阻止脚本标记会发生什么?显然,它可以渲染到脚本标记,但是缺少 autocomplete.css
会阻止脚本的执行吗?请注意,脚本标记不是同步的。
我已经阅读了: https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp 在那里,它说 JavaScript 的执行被阻止,直到 CSSOM 准备好。
现在: 1. 即使尚未到达
autocomplete.css
,页面是否会开始呈现?
2. script.js
的执行是否被阻塞,直到autocomplete.css
到位?请注意,我指的是两件不同的事情:呈现和脚本执行。
autocomplete.css
文件,则页面将会抛出一个静默错误:Failed to load resource: net::ERR_FILE_NOT_FOUND。但是,所有内容都将继续加载,包括您的脚本。如果文件存在但加载需要时间,则由于您的 CSS 在头部并且必须在页面的其余内容加载之前加载,因此您的页面将无法加载。 - Paulo Pereira