美文网首页
关键渲染路径

关键渲染路径

作者: 广州芦苇科技web前端 | 来源:发表于2018-12-14 23:17 被阅读0次

标签: 浏览器渲染


关键渲染路径

提到页面渲染,有几个相关度非常高的概念,最重要的是关键渲染路径,其他几个概念都可以从它展开,下面稍作说明。

关键渲染路径(CriticalRenderingPath)是指与当前用户操作有关的内容。例如用户刚刚打开一个页面,首屏的显示就是当前用户操作相关的内容,具体就是浏览器收到HTML、CSS和JavaScript等资源并对其进行处理从而渲染出Web页面。

了解浏览器渲染的过程与原理,很大程度上是为了优化关键渲染路径,但优化应该是针对具体问题的解决方案,所以优化没有一定之规。例如为了保障首屏内容的最快速显示,通常会提到渐进式页面渲染,但是为了渐进式页面渲染,就需要做资源的拆分,那么以什么粒度拆分、要不要拆分,不同页面、不同场景策略不同。具体方案的确定既要考虑体验问题,也要考虑工程问题。

浏览器渲染页面的过程

从耗时的角度,浏览器请求、加载、渲染一个页面,时间花在下面五件事情上:

1.DNS查询

2.TCP连接

3.HTTP请求即响应

4.服务器响应

5.客户端渲染

本文讨论第五个部分,即浏览器对内容的渲染,这一部分(渲染树构建、布局及绘制),又可以分为下面五个步骤:

1.处理HTML标记并构建DOM树。

2.处理CSS标记并构建CSSOM树。

3.将DOM与CSSOM合并成一个渲染树。

4.根据渲染树来布局,以计算每个节点的几何信息。

5.将各个节点绘制到屏幕上。

需要明白,这五个步骤并不一定一次性顺序完成。如果DOM或CSSOM被修改,以上过程需要重复执行,这样才能计算出哪些像素需要在屏幕上进行重新渲染。实际页面中,CSS与JavaScript往往会多次修改DOM和CSSOM,下面就来看看它们的影响方式。

阻塞渲染:CSS与JavaScript

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

同时,由于下面两点:

1.默认情况下,CSS被视为阻塞渲染的资源,这意味着浏览器将不会渲染任何已处理的内容,直至CSSOM构建完毕。

2.JavaScript不仅可以读取和修改DOM属性,还可以读取和修改CSSOM属性。

存在阻塞的CSS资源时,浏览器会延迟JavaScript的执行和DOM构建。另外:

1.当浏览器遇到一个script标记时,DOM构建将暂停,直至脚本完成执行。

2.JavaScript可以查询和修改DOM与CSSOM。

3.CSSOM构建时,JavaScript执行将暂停,直至CSSOM就绪。

所以,script标签的位置很重要。实际使用时,可以遵循下面两个原则:

1.CSS优先:引入顺序上,CSS资源先于JavaScript资源。

2.JavaScript应尽量少影响DOM的构建。

浏览器的发展日益加快(目前的Chrome官方稳定版是61),具体的渲染策略会不断进化,但了解这些原理后,就能想通它进化的逻辑。

往期精彩回顾


陈佳良 广州芦苇科技web前端工程师

相关文章

  • 关键路径渲染

    图片总是上传失败。 这里是好的 浏览器渲染原理 DOM CSSOM RenderTree Layout Paint...

  • 关键渲染路径

    浏览器从接收到服务器返回的HTML到渲染像素到屏幕上,中间经历了很多的步骤。浏览器初次绘制网页的必经过程称之为“关...

  • 关键渲染路径

    标签: 浏览器渲染 关键渲染路径 提到页面渲染,有几个相关度非常高的概念,最重要的是关键渲染路径,其他几个概念都可...

  • 深入浅出浏览器渲染

    一、浏览器如何渲染网页 要了解浏览器渲染页面的过程,首先得知道一个名词——关键路径渲染。关键渲染路径(Critic...

  • css知识总结

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

  • 浏览器渲染原理与过程

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

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

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

  • 如何理解重排和重绘?

    重排和重绘是浏览器关键渲染路径上的两个节点, 浏览器的关键渲染路径就是 DOM 和 CSSOM 生成渲染树,然后根...

  • 了解关键渲染路径

    优化关键渲染路径是指优先显示与当前用户操作有关的内容。 要提供快速的网络体验,浏览器需要做许多工作。这类工作大多数...

  • 网页渲染机制

    渲染引擎及关键渲染路径(Critical Rendering Path) 通过网络模块加载到HTML文件后渲染引擎...

网友评论

      本文标题:关键渲染路径

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