美文网首页
浏览器渲染机制

浏览器渲染机制

作者: 七_五 | 来源:发表于2017-05-06 12:04 被阅读0次

在web开发的过程中知道和了解浏览器是如何进行页面渲染的,可以帮助我们在开发的过程中更好的写出高质量代码。

一、HTML和CSS的渲染

  • 解析HTML标签,构建DOM树;
  • 解析CSS标签,构建CSSOM树;
  • 将DOM和CSSOM组合成为渲染树(render tree);
  • 在渲染树的基础之上进行布局,结算每一个节点的几何位置和结构;
  • 将每个节点绘制到屏幕上(painting)

注意: 不同的浏览器对于渲染树的构造顺序是不同的,如webkit内核是同时(或先后)解析HTML、CSS,然后待两者分别解析完成,在一次成型组合成为渲染树;而Firefox浏览器在同时(或先后)解析HTML、CSS的同时,根据顺序依次的组合成渲染树(可能分多次形成),这样在用户浏览的时候会出现从无样式到样式多次变化的一个过程

二、JS脚本的渲染

浏览器渲染JS脚本的时候有一个十分重要的特性:脚本会阻塞后面内容的呈现和其后组件的下载
对于图片与CSS,在加载的时候可以并发加载。但在js(单线程语言)脚本的时候,会禁用并发,并且阻止其他内容的下载。

三、加载异步

<script  src="script.js"></script>

浏览器会立即执行加载指定的脚本,“立即”可以理解为该渲染script标签之下的文档元素之前,也就是说不等待后面载入的文档元素,读到就加载执行

<script async  src="script.js"></script>

添加async后,加载和渲染后续文档的过程江河script.js的加载与执行并行进行(异步)

<script defer  src="script.js"></script>

功能与async类似,但script.js的执行要在所有的元素解析执行完成之后,DOMContentLoaded事件触发之前完成。

问答

1、CSS和JS在网页中的放置顺序是怎样的?

  • 依据HTML和CSS渲染的的机制我们知道,若将CSS放在渲染HTML后则浏览器解析完HTML等待CSS的过程中将可能出现无样式的白屏现象;若将CSS放在HTML文档中间,则可能出现页面布局渐进改变的现象(FOUC),故CSS放在HTML的head标签中最佳。
  • 依据JS渲染机制,若将其放在HTML前都将影响后续的组件加载;若将其放在HTML的head标签中则更是会造成直接白屏的现象;故将其放在闭合的body标签之上最佳。

2、解释白屏和FOUC

  • 白屏指当HTML渲染完成后需要等待CSS样式加载以组合渲染树所造成的现象或者JS脚本先于HTML加载而延迟了后者的加载时间
  • FOUC是浏览器在同时解析HTML、CSS的同时,根据顺序依次的组合成渲染树(可能分多次形成),这样在用户浏览的时候会出现从无样式到布局多次变化的一个过程。

3、async和defer的作用是什么?有什么区别

  • async和defer的作用是:加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
    有 ,加载后续文档元素的过程将和 script.js 的加载并行进行(异步)。
  • 区别 :async不保证顺序
    defer:脚本延迟到文档解析和显示后执行,有顺序(脚本的执行要在所有元素解析完成之后,DOMContentLoaded事件触发之前完成)

4、简述网页的渲染机制
详见上述一、HTML和CSS的渲染

相关文章

  • 略知一二之浏览器渲染原理

    浏览器渲染原理 推荐相关阅读文章 浏览器页面渲染机制,你真的弄懂了吗? 关键渲染路径 深入浅出浏览器渲染原理 [译...

  • 前端渲染机制及重绘/回流

    渲染机制 渲染步骤 浏览器的渲染机制一般分为以下几个步骤: 1. 处理 HTML 并构建 DOM 树。2. 处...

  • 浏览器原理相关视频课程

    大话浏览器渲染原理浏览器渲染原理和打开网页机制HTTPS 网络协议原理解析从零开始,彻底掌握浏览器渲染原理深入V8...

  • 重绘(redraw或repaint),重排(reflow)

    浏览器运行机制图: 浏览器的运行机制:layout:布局; 1、构建DOM树(parse):渲染引擎解析HTML文...

  • 网页的渲染机制

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

  • 网页的渲染机制

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

  • 2020-07-23 18课 CSS动画+浏览器渲染原理

    浏览器渲染原理 渲染机制 浏览器加载HTML代码后解析HTML代码来构建HTML树(DOM) 加载CSS代码后解析...

  • 重绘和重排

    参考 浏览器渲染机制 浏览器采用流式布局模型(Flow Based Layout)。 浏览器会把 HTML 解析成...

  • 网页渲染机制

    网页通过浏览器展示在我们面前,说网页的渲染机制就是说浏览器怎么渲染页面的。市面上浏览器主流浏览器chrome,fi...

  • 重绘(redraw或repaint),重排(reflow)

    浏览器运行机制图: 浏览器的运行机制: 1、构建DOM树(parse):渲染引擎解析HTML文档,首先将标签转换成...

网友评论

      本文标题:浏览器渲染机制

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