浏览器原理

浏览器原理

image-20220222174904164

采用多线程,一旦有一个页面卡了,其他页面不会受影响

image-20220222175357246

image-20220222182036768

到网络进程获取到数据之后,会通过safeBrowsing来检查是不是恶意站点,是的话会提示是恶意页面,(站点安全系统,护检查是不是在谷歌黑名单里面),如果不是恶意的,然后会通过渲染器进程来渲染页面,浏览器进程会通过IPC管道将数据传递给渲染器进程,渲染器进程的任务就是把html,css,js,image渲染成交互的web页面,渲染器进程的主线程会解析html

image-20220222200905601

image-20220222202044303

Tokeniser:将html解析成多个标记.

image-20220222202301401

image-20220222214521895

构建DOM的大致过程如下:

  • 通过网络获取字节流和字符;
  • 对字符序列进行分词操作,得到一个个token;
  • 根据token序列分析语法,得到一个个节点node;
  • 根据node序列,分析并构建DOM树。

dom有元素节点,文本节点,属性节点

----------------------------------------------分隔---------------------------

CSSOM

在CSS文档中,也同样拥有节点,它的节点与DOM树中的节点是对应的。
1.解析CSS文件(如果是link的)
2.将字节转换成字符。
3.确定tokens(标签)
4.将tokens转换成节点
5.最后根据节点构建CSSOM树。

20210330185428509

css或者图片需要从网上下载或者从缓存直接加载,他们不会阻塞html解析,不会影响Dom的生成.但是执行到js就会停止,因为浏览器不知道js会不会改变dom结构,接下来需要解析css,并确定dom节点的计算样式,h2和h3有浏览器内置的样式,会遍历dom和就算好的样式,生成Layout 树,里面每个节点包含了x,y坐标,和边框大小,但是两个树不一定一样

image-20220222203602531

image-20220222203814804

image-20220222203329880

Dom只关心html,不关心css,layout tree是根据dom和css计算出来的

之后会遍历layout tree 生成绘制记录表(考虑到z-index会影响节点绘制的层级关系),里面记录了绘制的顺序,这个阶段叫做绘制

,后面就是栅格化

重绘(少了布局和重绘)和重排:重新走布局和绘制

image-20220222210950086

image-20220222212017549

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V03v7bJ9-1645538735504)(https://gitee.com/liangqinchuang/pictures/raw/master/image-20220222212318747.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@追求卓越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值