美文网首页
浏览器的渲染过程

浏览器的渲染过程

作者: YellowPoint | 来源:发表于2019-06-19 17:39 被阅读0次

按照HTML5标准中的HTML语法规则,如果在</body>后再出现<script>或任何元素的开始标签,都是parse error,浏览器会忽略之前的</body>,即视作仍旧在body内。所以实际效果和写在</body>之前是没有区别的。
为什么把 Script 标签放在 body 结束标签之后 html 结束标签之前? - 贺师俊的回答 - 知乎
https://www.zhihu.com/question/20027966/answer/13727164

原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的这篇文章不错

综上所述,我们得出这样的结论:

CSS 不会阻塞 DOM 的解析,但会阻塞 DOM 渲染。
JS 阻塞 DOM 解析,但浏览器会"偷看"DOM,预先下载相关资源。
浏览器遇到 <script>且没有defer或async属性的 标签时,会触发页面渲染,因而如果前面CSS资源尚未加载完毕时,浏览器会等待它加载完毕在执行脚本。

所以,你现在明白为何<script>最好放底部,<link>最好放头部,如果头部同时有<script>与<link>的情况下,最好将<script>放在<link>上面了吗?


浏览器遇到 <script>且没有defer或async属性的 标签时,会触发页面渲染
这一点一直没注意到,就是说js是阻塞的其下面的dom的解析和渲染,其上面dom会先渲染


谈论资源的阻塞时,我们要清楚,现代浏览器总是并行加载资源。例如,当 HTML 解析器(HTML Parser)被脚本阻塞时,解析器虽然会停止构建 DOM,但仍会识别该脚本后面的资源,并进行预加载。
https://juejin.im/entry/59e1d31f51882578c3411c77


自己的理解:
css放在顶部,因为css不阻塞dom的解析,就可以先去下载css,同时下面解析dom,js放在底部就不阻塞dom的解析,碰到了底部的js后,就先渲染一次(此时要等css回来再渲染),再下载与执行js ,
最优的情况应该是,顶部加载首屏所必须的css,中间是首屏的dom,然后是首屏的js;再之后就是其他屏的css、dom、js;在不分屏的时候,js放在底部也会为了让dom都已构建出来能够操作dom了,


JS 一定要放在 Body 的最底部么?聊聊浏览器的渲染机制
script标签的位置会影响首屏时间么?

如果script标签的位置在首屏范围以下,不影响首屏时间

即使你把script标签都放到底部,但script标签的存在终究是拖慢了首屏时间、DomContendLoad和loaded的时间。(先渲染了一部分dom是否还没有触发DomContendLoad)

css才是影响页面首屏时间的罪魁祸首,如果css太大,页面白屏的时间就长了,就是render tree被推迟了,所以如果css太大就需要把非首屏css也放到底部,js只不过是影响用户和js相关的那些操作的时间而已。如果面试的话,就是这么回答。

相关文章

  • JS浏览器渲染原理(JS引擎)

    1、浏览器渲染过程 浏览器的渲染过程共分为几个过程:JavaScript ——> Style ——> Layout...

  • 浏览器渲染页面过程

    浏览器渲染页面过程 1. 构建DOM和CSSOM树 浏览器渲染页面前需要构建DOM和CSSOM树 浏览器解析过程大...

  • 浏览器加载、解析、渲染

    浏览器加载、解析、渲染的过程是怎么样的? Why 为什么要了解浏览器加载、解析、渲染这个过程? 1.了解浏览器如何...

  • 网页的渲染机制

    网页的渲染机制 参考文章:ScriptJava——了解HTML页面的渲染过程浏览器加载,解析,渲染的过程HTML渲...

  • 网页的渲染机制

    网页的渲染机制 参考文章:ScriptJava——了解HTML页面的渲染过程浏览器加载,解析,渲染的过程HTML渲...

  • JS基础知识储备(回流与重绘及优化策略)

    1、浏览器渲染过程 从上面这个图上,我们可以看到,浏览器渲染过程如下: 解析HTML,生成DOM树,解析CSS,生...

  • 浏览器渲染浅析

    1.浏览器渲染主要流程 不同的浏览器内核不同,所以不同浏览器的渲染过程也不太一样。这里我们看下WebKit 的渲染...

  • css知识总结

    一、浏览器渲染原理 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

  • 浏览器渲染原理与过程

    浏览器如何渲染网页 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

  • 浏览器渲染原理与过程【转】

    浏览器如何渲染网页 要了解浏览器渲染页面的过程,首先得知道一个名词——关键渲染路径。关键渲染路径是指浏览器从最初接...

网友评论

      本文标题:浏览器的渲染过程

      本文链接:https://www.haomeiwen.com/subject/hjxlqctx.html