前端全链路优化实战课
唐俊开
前阿里前端技术专家,前教育企业前端总监
1250 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 21 讲/共 32 讲
前端全链路优化实战课
15
15
1.0x
00:00/00:00
登录|注册

20|优化INP(下): 如何优化布局和渲染,提升网页响应速度?

你好,我是三桥。
上节课,我们探讨了如何通过拆分长任务来优化 INP 指标,解决页面卡顿的问题。实际上,不仅是长任务会影响 INP 指标,页面布局、渲染和解析 HTML 会影响 INP 指标。

浏览器工作流程

我们先回顾一下浏览器是如何布局和渲染 HTML 的。下面是一张浏览器工作原理的流程图。
从上图可以看出,浏览器的工作流程主要分为两部分:解析文档和渲染页面。

解析文档

首先,浏览器会从服务器获取 HTML 文档并解析其代码,包括识别 HTML 标签、属性和文本内容,然后生成一个 DOM 树。
其次,浏览器会根据 CSS 样式表确定每个元素的样式规则,如字体、颜色、大小和布局等。然后,将这些样式规则与 DOM 树结合,最终生成一个渲染树。
也就是说,整个过程里,浏览器会将原始 DOM 树解析成渲染树。虽然它们都是树,但实际上有所不同。DOM 树包含可见和不可见两大类元素,而渲染树只包含需要显示的元素和样式信息,不包含不可见的元素。例如,如果元素的 CSS 样式为display:none,那么该元素不会被包含在渲染树中。
浏览器在转换过程中是需要一定的计算时间,这个时间根据 DOM 树和样式表的复杂度而变化。需要特别注意的是,以下因素会影响转换耗时。
DOM 树越深,遍历耗时越长。
需要计算每个元素的高度、宽度、边框、边距等。
元素的可视属性,如特殊字体、颜色渐变、动画等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

1. 浏览器工作流程主要分为解析文档和渲染页面两部分,包括生成DOM树和渲染树,以及确定元素位置和大小,绘制内容到屏幕上。 2. 解析、布局和渲染以及JavaScript脚本的执行在一个主线程上共享,耗时过长会降低页面的输入延迟(INP)指标。 3. 布局优化方向包括减少`calc()`函数的使用频率、避免频繁更新页面元素的宽度、高度等操作,以及尽量不使用定位元素的伪类选择器。 4. 避免频繁的重排和重绘操作,减少对页面布局和渲染的影响,通过合理的布局优化和代码优化,提升网页的响应速度。 5. 避免在循环体内触发浏览器重排,减少无用的DOM元素,简化页面结构,提高页面性能,并使代码更易于理解和维护。 6. 优化布局和渲染的方案:降低样式计算的使用率、减少重排重绘的频率、减少DOM数量和优化长列表。 7. 虚拟化列表和预加载是解决长列表性能问题的两种方案,可以通过这些策略来优化长列表,提高页面性能。 8. 性能优化是通过换一种实现方案解决业务问题,需要通过开发者工具分析,找出问题根源并提出解决方案。 9. 大型前端项目通常非常复杂,很难使用标准化的优化方案解决性能问题,需要根据具体情况提出个性化的解决方案。 10. 性能问题或交互卡顿通常是前端业务逻辑导致,需要针对具体业务场景进行性能优化。 这些重点涵盖了浏览器工作流程、性能优化方向、布局和渲染的优化方案,以及解决长列表性能问题的策略,对于前端开发者进行性能优化和页面优化提供了指导和建议。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《前端全链路优化实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)