← 返回目录

第 1 卷

第 1 / 7 卷日期:

前端性能优化全解析

1. 前端开发中性能优化的核心操作

前端性能优化围绕「加载性能」「渲染性能」「运行性能」三大维度展开,核心操作如下:

• 加载阶段优化:资源压缩(JS/CSS/图片)、代码分割、懒加载、CDN 接入、DNS 预解析、HTTP

缓存配置、减少 HTTP 请求(雪碧图、资源合并)、使用现代资源格式(WebP、Avif)、预加载关键资源

• 渲染阶段优化:避免重绘与回流、优化 CSS 选择器、使用 Flex/Grid 布局(性能优于传统布局)、

异步加载非关键 CSS、首屏渲染优化(⻣架屏、关键 CSS 内联)

• 运行阶段优化:JS 代码性能优化、避免内存泄漏、使用虚拟 DOM、防抖节流、优化事件绑定(事

件委托)、减少 DOM 操作、合理使用 Web Worker(处理耗时任务)

2. 代码分割(Code Splitting) 及性能优化实践

什么是代码分割

代码分割是指将原本打包在一起的整份 JS/CSS 代码,按一定规则拆分成多个小的代码块(chunk),而非一次性加载所有资源的前端优化技术。它解决了传统打包模式下「打包体积过大、首屏加载时间

过长」的问题。

开发中如何利用代码分割优化性能
  1. 按路由分割(最常用,框架友好支持)

◦ Vue:结合 vue-router 的 import() 动态导入实现路由懒加载

Code block

1const Home = () => import(/* webpackChunkName: "home" */ './views/Home.vue')

2const router = new VueRouter({ routes: [{ path: '/', component: Home }] })

◦ React:结合 react-router 与 import() 实现

Code block

1const About = React.lazy(() => import(/* webpackChunkName: "about" */

  1. 按组件分割(非核心组件按需加载)

对弹窗、图表等非首屏必需的组件,使用 import() 动态导入,触发特定操作(如点击按钮)时再加载组件代码。

  1. 按功能模块分割(第三方库分割)

对体积较大的第三方库(如 Lodash、ECharts),单独拆分成独立 chunk,避免与业务代码打包在一起,利用浏览器缓存缓存第三方库资源。

◦ Webpack 配置示例:通过 splitChunks 拆分第三方依赖

Code block

1module.exports = { 2optimization: {

3splitChunks: { 4chunks: 'all',

5cacheGroups: { 6vendor: {

7test: /[\\/]node_modules[\\/]/,
8name: 'vendors',
9priority: -10
10}
11}
12}
13 }
14 }

3. 懒加载(Lazy Loading) 与预加载(Preloading)

核心定义

• 懒加载(延迟加载):指资源(图片、组件、路由等)并非页面初始化时加载,而是在其即将进入

可视区域或触发特定操作时,才开始加载的技术。

• 预加载(提前加载):指在页面核心资源加载完成后、浏览器空闲时,主动提前加载后续可能需要

用到的资源(如下一个路由的组件、一张非首屏图片)的技术。

核心作用

• 懒加载的作用:

• 预加载的作用:

  1. 提前缓存后续需要的资源,当用户触发相关操作(如跳转路由、点击按钮)时,资源已缓存,

提升交互响应速度,减少等待时间

  1. 合理利用浏览器空闲时间,不阻塞核心资源的加载和渲染

4. CDN 定义及核心作用

什么是 CDN

CDN(Content Delivery Network,内容分发网络)是一套分布式的边缘节点服务器集群,它会将源站的静态资源(JS、CSS、图片、视频等)缓存到靠近用户的边缘节点上,当用户请求资源时,无需

访问源站,直接从最近的边缘节点获取资源。

CDN 的核心作用
  1. 提升资源加载速度:用户从就近的边缘节点获取资源,减少网络传输距离和延迟,解决「跨地域访

问慢」的问题

  1. 减轻源站压力:大部分静态资源请求由边缘节点承接和响应,大幅减少源站的访问量和带宽消耗
  2. 提高网站可用性和容灾能力:CDN 节点多为分布式部署,某一个节点故障时,会自动切换到其他可

用节点,避免源站单点故障导致的服务不可用

  1. 实现静态资源缓存:边缘节点会缓存静态资源,重复请求可直接返回缓存内容,进一步提升响应速

度

5. CDN 原理、使用场景及开发实践

CDN 的核心原理
  1. 资源缓存:CDN 首次接收到用户请求时,会先向源站请求资源,获取后将资源缓存到该边缘节点,

并设置缓存过期时间

  1. 调度系统(核心):通过 GSLB(全局负载均衡)系统,根据用户的地理位置、网络质量、节点负

载情况等因素,智能分配最近、最优的边缘节点给用户

  1. 请求转发与响应:用户请求资源时,先发送到 GSLB 进行节点调度,再由调度后的边缘节点提供资

源服务;若节点无缓存或缓存过期,会先回源更新缓存,再响应用户

  1. 缓存失效机制:当源站资源更新时,可通过主动推送、手动刷新或等待缓存过期的方式,让 CDN

节点更新缓存,保证用户获取最新资源

CDN 的使用场景
全站分卷索引 · 7 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷