前端页面渲染机制

1 页面从输入URL到展现发生了什么?

第1步:客户端发送域名到DNS服务器

第2步:DNS服务器找到域名对应的IP地址

第3步:DNS服务器返回该IP地址给客户端

第4步:客户端发送请求给IP主机服务器

第5步:IP主机服务器处理HTTP请求,返回HTTP报文

第6步:浏览器解析HTTP报文并渲染页面

 

2 浏览器的7部分基础结构:

1用户界面

2浏览器引擎:控制和管理下一级的渲染引擎

3渲染引擎:解析HTML XML CSS

4网络:处理网络相关的事务,如HTTP请求

5UI后端:绘制提示框等浏览器组件

6JavaScript解释器:解析和执行JavaScript代码

7数据存储:持久存储应用数据比如cookie和缓存

 

3 浏览器如何渲染网页?

1解析HTML文档以构建DOM树

2解析CSS以构建CSSOM树

3执行JavaScript

4根据DOM树、CSSOM树以构建render树

5布局(layout)render树  回流(Reflow)render树

6绘制(painting)render树  重绘(Repaint)render树 

7屏幕上的实际内容

 

4 浏览器如何优化渲染?

1尽可能减少重绘回流的次数

2在JavaScript代码运行时缓存所有的变化,然后只绘制一次来应用这些更改

3获取元素属性会触发强制回流,应合并读取元素属性的操作

4选择合适的CSS选择器

  • CSS选择器根据其优先级具有不同的运行效率(从快到慢):
    • ID选择器: #id
    • 类选择器: .class
    • 标签选择器: div
    • 相邻选择器: a + i
    • 子元素选择器: ul > li
    • 通用选择器: *
    • 属性选择器: input[type="text"]
    • 伪类选择器: a:hover
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值