浏览器工作原理(二):浏览器渲染过程概述

参考:https://segmentfault.com/a/1190000012925872#articleHeader4

浏览器器内核拿到内容后,渲染大概可以划分成以下几个步骤

  1. 解析html建立dom树
  2. 解析css构建render树(将CSS代码解析成树形的数据结构,然后结合DOM合并成render树)
  3. 布局render树(Layout/reflow),负责各元素尺寸、位置的计算
  4. 绘制render树(paint),绘制页面像素信息
  5. 浏览器会将各层的信息发送给GPU,GPU会将各层合成(composite),显示在屏幕上。

所有详细步骤都已经略去,渲染完毕后就是load事件,对应JS逻辑处理

load事件与DOMContentLoaded事件的先后

  • DOMContentLoaded 事件:仅当DOM加载完成,不包括样式表,图片。如果有async加载的脚本就不一定完成
  • onload 事件:页面上所有的DOM,样式表,脚本,图片都已经加载完成,渲染完毕

所以,顺序是:DOMContentLoaded -> load

头部引入css加载是否会阻塞dom树渲染?

首先,css是由单独的下载线程异步下载的。

然后再说下几个现象:

  • css加载不会阻塞DOM树解析(异步加载时DOM照常构建)
  • 但会阻塞render树渲染(渲染时需等css加载完毕,因为render树需要css信息)

这可能也是浏览器的一种优化机制。

因为加载css的时候,可能会修改DOM节点的样式,如果css加载不阻塞render树渲染的话,那么当css加载完之后,可能引起重绘或者回流,造成没有必要的损耗。

所以,先把DOM树的结构先解析完,然后等css加载完之后,再根据最终的样式来渲染render树,以此优化性能。

原文地址:https://www.cnblogs.com/zs-note/p/9042366.html

时间: 2024-07-31 18:55:14

浏览器工作原理(二):浏览器渲染过程概述的相关文章

浏览器工作原理及相关内核、技术介绍

好吧,我最喜欢的就是原理方面的介绍了..好处有两个:1.了解原因更方便与工(zhuang)作(bi):2.原理都是相同的,大道归一啊(吐) 正文开始: 一.浏览器工作原理(简化版) 1.浏览器用来干什么用 浏览器的主要功能是将用户请求访问的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF.image及其他格式.用户用URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置. HTML和CSS

[转帖]浏览器工作原理

浏览器工作原理详解 原贴地址不详 .. 这篇文章是以色列开发人员塔利·加希尔的研究成果.她在查阅了所有公开发布的关于浏览器内部机制的数据,并花了很多时间来研读网络浏览器的源代码.她写道: 在 IE 占据 90%市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了.但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了.呃,里面只有数以百万行计的C++ 代码… 本篇文章的英文原版:How Browsers Work: Behind the

浏览器工作原理

浏览器工作原理的实质就是实现http协议的通讯,具体过程如下: HTTP通信的流程,大体分为三个阶段:1. 连接 服务器通过一个ServerSocket类对象对8000端口进行监听,监听到之后建立连接,打开一个socket虚拟文件.2. 请求 创建与建立socket连接相关的流对象后,浏览器获取请求,为GET请求,则从请求信息中获取所访问的HTML文件名,向服务器发送请求.3. 应答 服务收到请求后,搜索相关目录文件,若不存在,返回错误信息.若存在,则想html文件,进行加HTTP头等处理后响应

了解浏览器工作原理-初步

作者:zccst 同样,先感谢同事们的技术分享,使我开始关注浏览器工作原理.(其实很早就想关注,但由于各种各样的原因一直拖延着) 先留一个链接,慢慢攒着 浏览器的工作原理:新式网络浏览器幕后揭秘(转)了解浏览器工作原理-初步,布布扣,bubuko.com

HTTPS详解二:SSL / TLS 工作原理和详细握手过程

HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对HTTPS 详解一的补充吧.还记得这张图吧. HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transp

[转]浏览器工作原理

作为前端,了解浏览器的工作原理还是很有必要的,这篇文章可以帮助我们把很多前端知识串起来,读了之后受益良多,所以转了过来.文章非常长,译文的排版不是很清晰,我对照原文重新排了个版,并且修正了一些明显的翻译问题,本文省略了原文中文法解析部分,因为感觉这部分太深入了,对前端工作帮助不大:如果对这部分感兴趣可以查看原文或译文原文在这里:http://taligarsiel.com/Projects/howbrowserswork1.htm译文在这里:http://blog.csdn.net/zzzaqu

浏览器工作原理简介

一.浏览器主要构成 1. 用户界面 - 包括地址栏.后退/前进按钮.书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分. 2. 浏览器引擎 - 用来查询及操作渲染引擎的接口. 3. 渲染引擎 - 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来. 4. 网络 - 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作. 5. UI后端 - 用来绘制类似组合选择框及对话框等基本组件,具有不特定于某

浏览器工作原理——页面加载

浏览器工作大流程 来看个图: 从上面这个图中,我们可以看到那么几个事: 1)浏览器会解析三个东西: 一个是HTML/SVG/XHTML,事实上,Webkit有三个C++的类对应这三类文档.解析这三种文件会产生一个DOM Tree. CSS,解析CSS会产生CSS规则树. Javascript,脚本,主要是通过DOM API和CSSOM API来操作DOM Tree和CSS Rule Tree. 2)解析完成后,浏览器引擎会通过DOM Tree 和 CSS Rule Tree 来构造 Render

浏览器工作原理学习记录

浏览器是我们前端开发者工作的平台,是我们最长用的软件,是我们必须要了解的知识面,做个学习记录. 现在人都离不开网络,在网上我们能干很多事情,用途最多的就是浏览器,它是一扇窗户,打开这扇窗户可以看到大千世界的变化,是人类获取信息重要的软件工具之一.对于单纯的使用者只知道怎么使用浏览器去上网冲浪,而对于前端开发者需要了解这个浏览器是怎么让我们可以自由的在网络世界遨游,它是怎么实现大千世界信息的展示的?分析开始... 什么是浏览器? 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户

路由及路由器工作原理深入解析1:概述

前言:现在从事的嵌入式产品设计,很多都是基于TCP/IP的,要求研发的设备能够接入广域网进行远程设置和访问,这就涉及到了路由的工作原理和路由器的使用.包括家庭中用到的ADSL.无线路由器以及在工业现场使用的企业及路由器.交换机,自己都曾接触和使用过,但一直都停留于表面的操作理解.现在由于产品研发的需要,希望能够进一步加深对路由器内部运行机制的理解,澄清一些模糊的认识,所以特写此文. 在阅读此文之前,我们先界定一下主机的概念:主机是连接到一个或多个网络的设备,它可以向任何一个网络发送和从其接收数据