美文网首页
网页渲染流程

网页渲染流程

作者: 小龙虾Julian | 来源:发表于2018-08-22 14:07 被阅读0次
网页渲染流程

首先是网页内容,输入到HTML解析器,HTML解析器解析,然后构建DOM树,在这期间如果遇到JavaScript代码则交给JavaScript引擎处理;如果来自CSS解析器的样式信息,构建一个内部绘图模型。该模型由布局模块计算模型内部各个元素的位置和大小信息,最后由绘图模块完成从该模型到图像的绘制。在网页渲染的过程中,大致可分为下面3个阶段:

1、从输入URL到生成DOM树

(1)地址栏输入URL,WebKit调用资源加载器加载相应资源;
(2)加载器依赖网络模块建立连接,发送请求并接收答复;
(3)WebKit接收各种网页或者资源数据,其中某些资源可能同步或异步获取;
(4)网页交给HTML解析器转变为词语;
(5)解释器根据词语构建节点,形成DOM树;
(6)如果节点是JavaScript代码,调用JavaScript引擎解释并执行;
(7)JavaScript代码可能会修改DOM树结构;
(8)如果节点依赖其他资源,如图片\css、视频等,调用资源加载器加载它们,但这些是异步加载的,不会阻碍当前DOM树继续创建;如果是JavaScript资源URL(没有标记异步方式),则需要停止当前DOM树创建,直到JavaScript加载并被JavaScript引擎执行后才继续DOM树的创建。

2、从DOM树到构建webkit绘图上下文

(1)CSS文件被CSS解释器解释成内部表示;
(2)CSS解释器完成工作后,在DOM树上附加样式信息,生成RenderObject树;
(3)RenderObject节点在创建的同时,WebKit会根据网页层次结构构建RenderLayer树,同时构建一个虚拟绘图上下文。

3、绘图上下文到最终实现

(1)绘图上下文是一个与平台无关的抽象类,它将每个绘图操作桥接到不同的具体实现类,也就是绘图具体实现类;
(2)绘图实现类也可能有简单的实现,也可能有复杂的实现,软件渲染、硬件渲染、合成渲染等;
(3)绘图实现类将2D图形库或者3D图形库绘制结果保存,交给浏览器界面进行展示。

注:上述是一个完整的渲染过程,现代网页很多都是动态的,随着网页与用户的交互,浏览器需要不断的重复渲染过程。

相关文章

  • 网页渲染流程

    首先是网页内容,输入到HTML解析器,HTML解析器解析,然后构建DOM树,在这期间如果遇到JavaScript代...

  • 网页渲染流程简述

    1.网页的渲染过程 webkit渲染html+css1-1.获取dom分割层1-2.计算样式1-3.重排 放置d...

  • 四、离屏渲染

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程离屏渲染与正常渲染 常⻅...

  • script async和defer, 什么是阻塞渲染

    浏览器渲染逻辑 浏览器下载html网页,边下载边解析渲染 解析过程中发现script标签 网页停止解析,把网页渲染...

  • 浅谈 GPU 及 “App渲染流程”

    浅谈 GPU 及 “App渲染流程”浅谈 GPU 及 “App渲染流程”

  • 3 CSS3 盒模型

    1、网页渲染模式:标准渲染模式、混杂(怪异)渲染模式 ->浏览器都有两种渲染网页模式 IE6混杂模式盒模型:代码区...

  • 000_开篇词

    宏观视角下的浏览器 Chrome架构 TCP协议 HTTP请求流程 导航流程 渲染流程(上) 渲染流程(下) 浏览...

  • iOS深入剖析【离屏渲染】原理

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程 从图上看,他们之间的区...

  • URL请求到网页渲染全流程讲解

    概述 1、浏览器先查看浏览器缓存,若缓存中有,请略过中间步骤,直接跳到第9步。若没有,则按照以下步骤进行。2、浏览...

  • OpenGL渲染流程

    OpenGL渲染流程 渲染框架 之前学习管线的时候,我们知道OpenGL的渲染流程是有固定次序的。那么先了解下渲染...

网友评论

      本文标题:网页渲染流程

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