大白话前端性能优化方法的分类与具体实现

news/2025/3/3 21:46:11/

大白话前端性能优化方法的分类与具体实现

一、资源加载优化

1. 压缩与合并文件
  • 大白话解释
    • 咱们的网页代码里,就像一个房间堆满了东西,有很多没用的“杂物”,比如代码里的空格、注释啥的。压缩文件就是把这些“杂物”清理掉,让文件变得更“瘦”,下载起来就快多啦。合并文件呢,就好比把好几个小包裹合成一个大包裹,这样浏览器下载的时候就不用一次又一次地去请求,节省时间。
  • 具体实现(使用 Webpack 压缩合并 JavaScript 和 CSS 文件)
    • 首先,确保你已经安装了 Webpack 和相关的加载器、插件。
    • 安装依赖:
npm install webpack webpack-cli css - loader style - loader terser - webpack - plugin mini - css - extract - plugin --save - dev
- 创建 `webpack.config.js` 文件:
const path = require('path');
const TerserPlugin = require('terser - webpack - plugin');
const MiniCssExtractPlugin = require('mini - css - extract - plugin');module.exports = {mode: 'production',entry: './src/index.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'bundle.js'},module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader, 'css - loader']}]},optimization: {minimizer: [new TerserPlugin()]},plugins: [new MiniCssExtractPlugin({filename: 'styles.css'})]
};
- 在 `package.json` 里添加脚本:
{"scripts": {"build": "webpack"}
}
- 运行 `npm run build` 就可以压缩合并代码了。
2. 图片优化
  • 大白话解释
    • 图片就像一个个大胖子,特别占地方,下载起来可费劲了。选对图片格式,就像给胖子减肥,选个合适的方法让它变瘦。压缩图片呢,就是把胖子身上多余的“肥肉”去掉,让它更轻巧。
  • 具体实现(使用 TinyPNG 在线压缩图片)
    • 打开 TinyPNG 官网。
    • 点击上传图片按钮,选择你要压缩的图片。
    • TinyPNG 会自动帮你压缩图片,压缩完成后下载压缩后的图片,替换原来的图片就行。
3. 按需加载
  • 大白话解释
    • 有些东西不是一开始就需要的,就像你去超市买东西,有些东西等你要用的时候再去拿,没必要一开始就把所有东西都买回家。按需加载就是等用户需要用到某个功能或者资源的时候,再去加载它,这样能加快页面的初始加载速度。
  • 具体实现(Vue 路由懒加载)
// 原来的路由配置
// import Home from './views/Home.vue'
// import About from './views/About.vue'// 改为懒加载
const Home = () => import('./views/Home.vue');
const About = () => import('./views/About.vue');const routes = [{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: About}
];

二、代码优化

1. 防抖和节流
  • 大白话解释
    • 防抖就像坐电梯,你一直按开门按钮,电梯不会每次都开门,而是等你停了一会儿,确定你不按了,才会开门。节流呢,就像水龙头,不管你怎么拧,在一段时间内,水的流量是固定的,不会一直变大。
  • 具体实现(JavaScript 防抖和节流函数)
// 防抖函数
function debounce(func, delay) {let timer;return function () {const context = this;const args = arguments;clearTimeout(timer);timer = setTimeout(() => {func.apply(context, args);}, delay);};
}// 节流函数
function throttle(func, limit) {let inThrottle;return function () {const context = this;const args = arguments;if (!inThrottle) {func.apply(context, args);inThrottle = true;setTimeout(() => inThrottle = false, limit);}};
}// 使用示例
const input = document.getElementById('searchInput');
const searchFunction = () => {console.log('执行搜索');
};// 防抖
input.addEventListener('input', debounce(searchFunction, 300));// 节流
window.addEventListener('scroll', throttle(() => {console.log('滚动触发');
}, 200));
2. 减少重排和重绘
  • 大白话解释
    • 重排就像你重新布置房间里的家具,得把家具挪来挪去,很费时间。重绘就像给家具重新刷漆,也得花点时间。减少重排和重绘就是尽量少折腾房间里的家具,让页面加载和渲染更快。
  • 具体实现(批量修改样式减少重排)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF - 8">
</head><body><div id="myDiv">这是一个 div</div><script>const div = document.getElementById('myDiv');// 先获取样式对象const style = div.style;// 批量修改样式style.width = '200px';style.height = '200px';style.backgroundColor = 'red';</script>
</body></html>

三、缓存优化

1. 浏览器缓存
  • 大白话解释
    • 浏览器缓存就像你的小仓库,把一些常用的东西放进去。下次要用的时候,直接从仓库里拿,不用再去外面买,这样就节省时间啦。
  • 具体实现(设置 HTTP 缓存头)
    • 如果你使用 Node.js 和 Express 框架,可以这样设置:
const express = require('express');
const app = express();app.get('/static/js/main.js', (req, res) => {res.set('Cache - Control', 'public, max - age=3600');res.sendFile(__dirname + '/public/js/main.js');
});const port = 3000;
app.listen(port, () => {console.log(`Server running on port ${port}`);
});
2. CDN 缓存
  • 大白话解释
    • CDN 就像在全国各地都有小仓库,你要的东西离你近的仓库就有,不用从很远的大仓库运过来,速度就快了。
  • 具体实现(使用阿里云 CDN)
    • 登录阿里云 CDN 控制台。
    • 添加域名,配置源站信息(就是你原来存放资源的服务器地址)。
    • 把网页里的资源链接替换成 CDN 分配的链接,比如把 <script src="http://your - server.com/js/main.js"></script> 换成 <script src="http://your - cdn - domain.com/js/main.js"></script>

四、服务器优化

1. 选择合适的服务器
  • 大白话解释
    • 服务器就像你的厨师,好的厨师做菜又快又好吃。选性能好、稳定的服务器,网页响应速度就快,用户体验就好。
  • 具体实现
    • 如果你是个人小网站,可以选择阿里云轻量应用服务器,配置简单,价格实惠。如果是大型网站,就选择性能更高的云服务器 ECS,根据网站的访问量和需求选择合适的配置。
2. 优化服务器配置
  • 大白话解释
    • 服务器配置就像厨师的厨房工具,工具好用,做菜效率就高。优化服务器配置能让服务器处理请求更快,就像给厨师换上更锋利的刀和更顺手的锅。
  • 具体实现(Nginx 调整并发连接数)
    • 打开 Nginx 配置文件(一般在 /etc/nginx/nginx.conf)。
    • 找到 worker_connections 配置项,把它的值调大,比如:
worker_processes  1;events {worker_connections  1024; // 可根据服务器性能调整
}
  • 保存配置文件,重启 Nginx 服务:
sudo systemctl restart nginx

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

相关文章

Linux安装jdk,node,mysql,redis

准备工作&#xff1a; 1.安装VMware软件&#xff0c;下载CentOs7镜像文件&#xff0c;在VMware安装CentOs7 2.宿主机安装Xshell用来操作linux 3. .宿主机安装Xftp用来在宿主机和虚拟机的linux传输文件 案例1&#xff1a;在 /home/soft文件夹解压缩jdk17&#xff0c;并配置环…

Linux运维——软件管理

Linux软件管理 一、rpm1.1、默认配置1.1.1、安装文件的默认位置1.1.2、配置文件位置1.1.3、查询已安装软件包的文件位置1.1.4、自定义安装路径1.1.5、rpm包缓存位置1.1.6、总结 1.2、使用方式1.2.1、基本用法1.2.2、常用示例1.2.3、高级用法1.2.4、注意事项1.2.5、与其它工具的…

git和gitee在idea中的使用

1.下载git 2.注册一个gitee且创建一个项目 3.在idea的plunge中下在gitee 4.登录gitee 别人使用的话复制 粘贴 commit提交到本地仓库 push推送到云端仓库

自动驾驶FSD技术的核心算法与软件实现

引言&#xff1a;FSD技术的定义与发展背景 在当今快速发展的科技领域中&#xff0c;自动驾驶技术已经成为全球关注的焦点之一。其中&#xff0c;“FSD”&#xff08;Full Self-Driving&#xff0c;全自动驾驶&#xff09;代表了这一领域的最高目标——让车辆在无需人类干预的情…

2.4 自动化评测答疑机器人的表现-大模型ACP模拟题-真题

真题 真题1&#xff1a;哪些是生成阶段的评估指标&#xff1f;哪些是召回阶段的评估指标&#xff1f; 整体回答质量的评估&#xff1a; Answer Correctness&#xff0c;用于评估 RAG 应用生成答案的准确度。 生成环节的评估&#xff1a; Answer Relevancy&#xff0c;用于评…

牛客刷题自留-深度学习

1、当在卷积神经网络中加入池化层(pooling layer)时&#xff0c;平移变换的不变性会被保留&#xff0c;是吗&#xff1f; 正常答案: C A 不知道 B 看情况 C 是 D 否 平移变换不变性的概念 平移变换不变性指的是当输入图像发生小范围的平移时&#xff0c;模型的输出结果不会发…

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略

2025年企业网络安全实战指南:常见漏洞解析与全方位防御策略 作者: 网络安全专家 日期: 2025-02-27 分类: [网络安全] 标签: [漏洞防护, 信息安全, 企业安全] 引言:漏洞是攻击者的入口,防御是安全的基石 2025年,网络安全威胁持续升级。根据Gartner最新报告,全球企业因漏洞…

MATLAB的msgbox函数使用教程(一)

msgbox 是 MATLAB 中用于创建消息对话框的核心函数,支持多种交互模式和自定义选项。本文档从基础到高级分步详解其用法,并提供完整代码示例和注意事项。 如需帮助,或有导航、定位滤波相关的MATLAB代码定制需求,请点击文末卡片联系作者 文章目录 一、基础用法1. 简单消息对话…