当前位置: 首页 > news >正文

前端性能优化-纲领篇

前端性能优化

本模块将梳理前端性能优化的相关知识点

从浏览器输入 URL 到页面展示发生了什么

完整版请查看[Browser_网络_安全]的部分,这里只是简单的梳理一下

  1. DNS 解析
  2. TCP 连接
  3. 浏览器发出 HTTP 请求
  4. 服务器处理请求并返回 HTTP 报文
  5. 浏览器解析渲染页面

性能优化的过程,就是对上述各个环节进行优化的过程, 比如 DNS 的解析时间,可以通过 DNS 缓存、DNS 预解析、减少 DNS 查询次数等方式来优化
又比如 TCP 连接,可以通过减少 TCP 连接次数、TCP 连接复用等方式来优化

对于前两者,前端能做的事情有限,因此我们主要把精力放在后两者上

前端性能优化

主要分为网络层和渲染层的优化

网络层的优化

主要的目标是减少 HTTP 请求次数和减少 HTTP 请求大小,具体的优化手段有:

  • webpack 打包体积优化(代码压缩、Tree Shaking、Scope Hoisting、代码分割、按需加载)
  • Gzip 压缩开启
  • 使用 CDN(内容分发网络)加速资源加载
  • 使用资源预加载和懒加载
  • 使用合适的图片格式、图片压缩
  • 使用浏览器缓存(HTTP 缓存,Local Storage, Session Storage, Cookie)

渲染层的优化

主要涉及日常的前端开发,主要的目标是减少页面的渲染时间,具体的优化手段有:

  • CSS 优化(选择器优化、CSS 预处理器、CSS 属性优化、CSS 动画优化)
  • JS 优化(减少 DOM 操作、减少重绘重排、JS 异步加载、JS 压缩、JS 懒执行、使用 Web Worker)
  • 回流重绘优化(减少 DOM 操作、使用 CSS3 动画、CSS3 硬件加速、使用 requestAnimationFrame)
  • 使用 Chrome Performance 工具进行性能分析
  • 异步更新 DOM(虚拟 DOM、Diff 算法)

性能评估指标与工具

  • Chrome Performance 面板
  • user-centric-performance-metrics
  • WebPageTest
  • web-vitals

本文首发于个人博客前端开发笔记,由于笔者能力有限,文章难免有疏漏之处,欢迎指正

http://www.lryc.cn/news/415139.html

相关文章:

  • 深度学习-----------数值稳定性
  • SpringBoot项目接口可以承受的调用次数
  • 抽象代数精解【8】
  • 数据结构与算法 - 二叉树
  • Spring Cloud Gateway如何给一个请求加请求头
  • chromedriver版本下载地址汇总chromedriver所有版本下载地址汇总国内源下载
  • Go语言与Windows系统
  • JAVA—面向对象编程高级
  • [BJDCTF2020]Mark loves cat1
  • 微信答题小程序产品研发-用户操作流程设计
  • 目标检测——YOLOv10: Real-Time End-to-End Object Detection
  • 堡垒机简单介绍
  • 【星闪开发连载】WS63E 星闪开发板和hi3861开发板的对比
  • Python接口自动化测试框架(实战篇)-- Jenkins持续集成
  • 【leetcode】根据二叉树创建字符串、二叉树的前中后遍历(非递归链表实现二叉树)
  • 【RabbitMQ】RabbitMQ交换机概述
  • ROS2从入门到精通4-6:路径平滑插件开发案例(以B样条曲线平滑为例)
  • Tensorflow训练视觉模型(CPU)
  • 从根儿上学习spring 十 之run方法启动第四段(4)
  • 如果我的发明有修改,需要如何处理?
  • java:File与MultipartFile互转
  • 高级java每日一道面试题-2024年8月04日-web篇-如果客户端禁止cookie能实现session还能用吗?
  • leetcode 107.二叉树的层序遍||
  • C++在网络安全领域的应用
  • Chapter 26 Python魔术方法
  • 基于Transformer的语音识别与音频分类
  • leetcode数论(1362. 最接近的因数)
  • sqli-labs-master less1-less6
  • 力扣287【寻找重复数】
  • 【2024蓝桥杯/C++/B组/传送阵】