WebKit技术内幕 第二章学习笔记

WebKit技术内幕 第二章学习笔记

网络上每个资源都是由URL标记的,它是URI的一种实现。

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。

而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。

而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。

也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。

URL和URN都是一种URI。

网页结构分几种:

框结构,层次结构

每一个框结构包含一个HTML文档

video会创建一个div,不同渲染引擎,分层策略不一样。(第七章分层策略)

浏览器主要作用:

用户输入的URL转化成可视化的图像。

网页当前可视区域,成为视图(viewport)

渲染的三个阶段:

从数据流向,可讲渲染分为三个阶段:

  • URL到构建DOM树
  • DOM树到构建完webkit绘图上下文
  • 绘图上下文 -> 最终图像
第一阶段:

这里写图片描述

网页加载和渲染过程会发出DOMContent事件和onload事件,分别在DOM树构建完之后,以及DOM树建完并且网页所以来资源都加载完你之后发生。这两个事件不是同时发生的。

onload和DOMContentLoaded

当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。

当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。

DOMContentLoaded相当于jQuery的$(document).ready

问题:

  • 加载样式表会阻塞外链脚本的执行
  • 各大javascript框架式如何实现自己的dom ready事件的?
第二阶段:

WebKit利用CSS和DOM树构建RenderObject树直到绘图上下文。

这里写图片描述

整个过程中DOM树一直存在,只有网页被销毁DOM树才会消失。

第三阶段:

这里写图片描述

桥接(Bridging),是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层。一般的交换机,网桥就有桥接作用。

图形处理器(Graphics Processing Unit,缩写:GPU)

webkit渲染过程:

这里写图片描述

左边蓝线是DOMContentLoad触发,红线是onload触发。

这里写图片描述

总结:

什么是RenderObject树?

什么是RenderLayer树

这里写图片描述

不过浏览器渲染引擎并不是直接使用 Render 树进行绘制,为了方便处理 Positioning(定位),Clipping(裁剪),Overflow-scroll(页內滚动),CSS Transform/Opacity/Animation/Filter,Mask or Reflection,Z-indexing(Z排序)等,浏览器需要生成另外一棵树 – Layer 树。

这里写图片描述

浏览器渲染引擎遍历 Layer 树,访问每一个 RenderLayer,再遍历从属于这个 RenderLayer 的 RenderObject,将每一个 RenderObject 绘制出来。

读者可以认为,Layer 树决定了网页绘制的层次顺序,而从属于 RenderLayer 的 RenderObject 决定了这个 Layer 的内容,所有的 RenderLayer 和 RenderObject 一起就决定了网页在屏幕上最终呈现出来的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值