前端开发性能优化方案整理

news/2025/1/15 20:34:03/

一、适用于CS和BS架构的前端优化方案

1、优化DOM操作

  • 使用DocumentFragment来批量添加DOM节点以减少重排和重绘。
  • 减少直接访问DOM,缓存经常访问的元素引用。
  • 避免强制同步布局,例如通过频繁读取或修改DOM属性。

2、资源加载管理-数据加载

  • 数据懒加载-按需加载
  • 使用现代图片格式如WebP

3、数据传输优化

  • 数据压缩:例如服务器开启gzip 压缩,服务器可选择压缩类型比如JSON,PNG,JS等等,减少传输的请求的响应数据量

3、HTTP/2与HTTP/3

  • 利用HTTP/2的多路复用功能,减少延迟。
  • 使用HTTP/3以获得更好的网络性能和恢复能力。

4、代码优化

  • 使用GZIP压缩请求数据。
  • 移除不必要的代码和注释。
  • 使用合适的数据结构:例如 Map 和 Set 以提高查找效率。
  • 避免不必要的循环:减少嵌套循环,使用更高效的循环结构。
  • 节流-防抖

5、减少渲染阻塞

  • CSS:提取首屏显示所需的 CSS 并内联在 HTML 中。
  • 异步 CSS:对于非关键样式表,使用异步加载。
  • 避免使用昂贵的 CSS 选择器:例如 :nth-child 和 :not 等。

5、前端框架和库

  • 选择高效的前端框架和库,比如React、Vue.js等,它们提供了虚拟DOM等特性。
  • 使用前端路由以实现单页应用的效果。

二、只适用BS架构的前端优化

1、Web Workers

  • 使用Web Workers处理复杂的计算任务,以避免阻塞UI线程。

2、资源加载优化

  • 合并CSS和JavaScript文件以减少HTTP请求。
  • 压缩HTML、CSS和JavaScript文件。

二、只适用CS架构的前端优化

1、增量更新

  • 软件更新打包wgt文件,使用增量更新


http://www.ppmy.cn/news/1508804.html

相关文章

QT(C#)-QTabWidget修改字体后Tab页显示不完整的解决方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、 前言2、问题示例3、解决方法 1、 前言 最近一段时间学习QT的程序开发,遇到了如标题所说的问题,经过查询和摸索找到了解决方法&#xff…

数据结构-常见的七大排序

上节中我们学习了七大排序中的五种(插入排序、希尔排序、堆排序、选择排序、交换排序) 数据结构-常见的七大排序-CSDN博客 这节我们将要学习快速排序(hoare、指针法、挖洞法(快排的延伸)、快速排序非递归(栈)) 1.快速排序 1.1 hoare法 1.1思路 1.选出一个key,一…

端到端 AWS 定量分析:使用 AWS 和 AWSCLI 自动运行脚本

使用 AWSCLI 启动、运行和关闭 AWS 服务器 添加图片注释,不超过 140 字(可选) 欢迎来到雲闪世界。我们开发了两个 Python 脚本;一个用于为我们获取数据,另一个用于使用 sklearn 的决策树分类器处理数据。然后&#xf…

华为OD-D卷数的分解

给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。 如果给定整数无法分解为连续正整数,则输出字符串"N"。 输入描述: 输入数据为一整数,范围为(1, 2^3…

【Regex】正则表达式详解:从基础到高级应用(保姆篇)

文章目录 正则表达式详解:从基础到高级应用一、正则表达式基础1. 什么是正则表达式?2. 基本组成部分 二、正则表达式的常用模式1. 字符匹配2. 量词3. 位置符号4. 分组和捕获 三、正则表达式的高级应用1. 断言(Assertions)2. 贪婪与…

从零开始实现循环神经网络

本节我们通过使用MXnet,来从零开始的实现一个含有隐藏状态的循环神经网络。 前序工作 数据集预处理进行采样 实现循环神经网络 完成前序工作后,即可开始实现循环神经网络。本文首先构建一个具有隐状态的循环神经网络。其结构如图所示: 接…

GPT-5 一年半后发布?对此你有何期待?

GPT-5 一年半后发布?对此你有何期待? IT之家6月22日消息,在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。此外,穆…

H5内嵌到APP-实现PDF浏览功能

1、下载插件 npm install vue-pdf-embed vue3-pdfjs vue3-pdfjs&#xff1a;获取PDF文件总页数 2、页面引入并使用 <template><div class"vuePdfEmbed"><div class"wraper" v-if"flagCover"><div class"articleTi…