相关疑难解决方法(0)

浏览器如何读取和解释CSS?

两部分问题:

  1. 浏览器是否有类似于JavaScript的内置CSS解释器?
  2. 当浏览器确实读取CSS时,它何时应用CSS?

具体来说,我想澄清JavaScript和CSS与JavaScript的不同之处或原因,您需要专门等到window.onload,以便解释器可以正确地获取getElementById.但是,在CSS中,您可以选择样式并将样式应用于类和ID.

(如果它甚至重要,假设我指的是一个带有外部样式表的基本HTML页面)

css browser rendering

23
推荐指数
5
解决办法
1万
查看次数

JavaScript的执行是否推迟到CSSOM生成之前?

自从我阅读/了解CSSOM以来,这个问题的答案一直很清晰,直到今天。我似乎无法能够找到最初的文章,但它解释很清楚,结合实例,即JavaScript执行被延迟,直到CSSOM从所有内置<style><link>标签<head>(除了那些不适用,基于@media查询)。
或者至少那是我当时所做的,直到今天我才有理由怀疑它。

Google的《 Web基础知识/性能》子章节中的粗体字声明似乎支持了这一点

...浏览器会延迟脚本执行和DOM构建,直到完成CSSOM的下载和构建为止。

但是,在我提供的这个答案下,与另一位SO用户就该主题进行了友好的交谈,这一说法受到了严峻的挑战,他在其中提出了以下论据以证明是相反的:

<head>
  <script>document.write("<!--");</script>
  <style> body { background-color: red; } </style>
  -->
</head>
Run Code Online (Sandbox Code Playgroud)

好的,让我们确定一下。让我们更换<style>

<link rel="stylesheet" type="text/css" href="test.php" />
Run Code Online (Sandbox Code Playgroud)

...并test.php挂几秒钟:

<link rel="stylesheet" type="text/css" href="test.php" />
Run Code Online (Sandbox Code Playgroud)

如果我是对的(并且js执行推迟到CSSOM构建完成),那么在构建CSSOM之前和执行之前,该页面将悬空10秒钟,<script>这将注释掉<link />并允许页面呈现。

如果他是正确的,则在满足条件时运行js,并且<link />请求永远不会离开,因为到目前为止这是一个注释。

惊喜:

  • 页面立即呈现。他是对的!
  • <link />请求离开,浏览器标签会显示加载图标10秒钟。我也是对的!还是我 我很困惑,那就是我...

任何人都可以对此有所了解吗?到底是怎么回事?
这和document.write吗?
它与加载.php文件而不是文件有关.css吗?


如果有什么不同,我在Ubuntu的Chrome中进行了测试。

我恳请链接可靠的(重新)资源或提供雄辩的示例/测试来备份您可能考虑提供的所有答案。

javascript css performance cssom

5
推荐指数
1
解决办法
472
查看次数

标签 统计

css ×2

browser ×1

cssom ×1

javascript ×1

performance ×1

rendering ×1