前端项目性能优化方案有哪些

news2025/7/19 15:42:44

目录

一、 加载优化(减少http请求数)

二、图片优化

三、使用CDN

四、开启Gzip(代码压缩)

六、减少不必要的Cookie

七、脚本优化

八、前端代码结构的优化

九、SEO优化


一、 加载优化(减少http请求数)

常用的减少http请求数有以下几种:

1. 合并图片:当图片较多时,像精灵图,雪碧图可以合并为一张大图,从而减少http请求数。经常变化的图片可能不太合适,变化相对稳定的就可以考虑。合并大图除了能减少http 请求数外,还可以充分利用缓存来提升性能。

2. 合并压缩css样式表和js脚本,他们的共同目的都是为了减少http连接数。

3. 去掉不必要的请求,开发写代码或者系统升级之后残留的无效请求连接。

4. 首屏加载:首屏快速显示可大大的提升用户对页面速度的感知,应尽量针对首屏的快速显示做出相应的优化。

5. 充分利用缓存:来减少向服务器发送的请求数,节省网络资源,所有静态资源都要放在服务器端并设置缓存,并且要尽量使用长缓存。

6.  预加载:大型资源页面可使用Loading,资源加载完成后再显示页面,但是加载时间过长,会造成负体验。

7. 异步加载第三方资源:第三方资源不可控,会影响页面加载,所以要异步加载第三方资源。


 

二、图片优化

优化方法:

1. 尽可能的使用PNG格式的图片,它相对来说体积较小,可以使用工具压缩,在上线之前最好进行一定的优化。

2. 同时在代码中进行图片的延迟加载,也叫做赖加载。

3. 避免img、iframe等标签的src属性为空:空src会重新加载当前页面,影响速度和效率。

4. 图像尽量避免使用DataURL:DataURL图像没有使用图像压缩算法,文件会变大,并且要解码后再渲染,加载慢耗时长。


三、使用CDN

CDN:实现把内容从中心媒体服务器分发到边缘服务器的网络体系即内容分发网络,CDN具有更低的网络延迟和丢包率,能够分配负载,节省带宽提高网站的性能,可以使用户就近取得所需内容,解决网络拥挤的状况,提高用户访问网站的响应速度。

如果安全性对你的网站很重要,就不要使用公共的CDN,因为当你远程从CDN请求文件时,你的访问来源信息也被发送过去,一些远程的js文件可能被修改用来搜集你的用户或者系统信息,而当你使用https协议时,能选择的CDN就更加有限。


四、开启Gzip(代码压缩)

Gzip即数据压缩,前端生产环境中将js、css、图片等文件进行压缩,通过减少数据传输量减小传输时间,节省服务器网络带宽,提高前端性能。

压缩时间、流程、说明

图片摘自网络,如有侵权,联系删!

 


五、样式表和JS文件的优化

1. 头部内联的样式和脚本会阻塞页面的渲染,一般我们会把css样式表文件放到文件的头部使用link引入,这样可以让CSS样式表尽早地完成下载。

2. 对应js脚本文件,一般我们把脚本放在尾部并使用异步方式加载,这样可以尽最大限度的减少样式和脚本对页面的阻塞。
 


六、减少不必要的Cookie

Cookie存储在客户端,伴随着HTTP请求在浏览器和服务器之间传递,由于cookie在访问对应域名下的资源时都会通过HTTP请求发送到服务器,从而会影响加载速度,所以尽量减少不必要的Cookie。


七、脚本优化

1.  复杂动画效果,使用绝对定位让其脱离文档流,避免循环DOM元素,用transform:translate 代替 position  left、right...以此来尽量减少回流和重绘。

2.将脚本往后挪,减少对并发下载的影响。

3.缓存.length的值:每次.length计算使用一个变量保存值。

4.尽量使用事件委托:不给每个子节点单独设置事件监听器,而是设置在其父节点上,然后利用冒泡原理设置每个子节点,避免批量绑定事件以此来减少内存消耗和DOM操作。

5.尽量使用id选择器:id选择器选择元素是最快的,具有唯一性,灵活性和优先性的优点。


 

八、前端代码结构的优化

1.设置Viewport:HTML的viewport可加快页面的渲染。

2.减少DOM结点:DOM结点太多会影响页面的渲染。

3.尽量使用css3动画:合理使用requestAnimationFrame动画代替setTimeout。

4.优化高频事件:scroll、touchmove等事件尽量使用函数防抖节流等进行限制。

5.  不滥用WEB字体:WEB字体需要下载、解析、重绘当前页面,尽量减少使用。

6.  文件命名规则须统一且要有意义,同类型文件归类到相同的文件夹中。


九、SEO优化

1.  标题: 标题字数不要太长,一般写核心的关键词和网站主题相关的内容。

2.  描述:描述是整个页面的综合说明,作用和重要性仅次于标题,描述最好能得吸引人一点,带上自己公司的品牌词和电话,并包括目标关键词。

3.  关键词:对关键词进行优化,能够让用户在搜索关键词的时候,能够准确的定位到自己要搜索的内容和网站,能够让网站被更多有需要的人看到。

4.网站代码:网站代码尽量精简,节约百度蜘蛛的时候,这一点针对大型网站特别重要。

以上内容整理于网络,仅供学习使用,侵权联系删!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/405003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue中axios的二次封装——vue 封装axios详细步骤

一、为什么要封装axios api统一管理,不管接口有多少,所有的接口都可以非常清晰,容易维护。 通常我们的项目会越做越大,页面也会越来越多,如果页面非常的少,直接用axios也没有什么大的影响,那页面…

vue3的setup的使用和原理解析

1.前言 最近在做vue3相关的项目,用到了组合式api,对于vue3的语法的改进也是大为赞赏,用起来十分方便。对于已经熟悉vue2写法的同学也说,上手还是需要一定的学习成本,有可能目前停留在会写会用的阶段,但是s…

Swagger-的使用(详细教程)

文章目录前言一、简介二、基本使用1. 导入相关依赖2. 编写配置文件2.1 配置基本信息2.2 配置接口信息2.3 配置分组信息3. 控制 Swagger 的开启4. 常用注解使用ApiModelApiModelPropertyApiOperationApiParam5. 接口调用三、进阶使用1. 添加请求头四、项目下载前言 作为后端开放…

37.JavaScript对象与JSON格式的转换,JSON.stringify、JSON.parse方法的使用方法和注意事项

文章目录JSON处理JSON.stringifystringify的限制排除和替换映射函数格式化使用的空格数量自定义toJSON方法JSON.parse使用reviver总结JSON处理 JSON(JavaScript Object Notation)是JavaScript表达值和对象的通用数据格式,其本质就是符合一定…

2023前端面试题及答案整理(JavaScript)

JS类型 string,number,boolean,undefined,null,symbol(es6),BigInt(es10),object 值类型和引用类型的区别 两种类型的区别是:存储位…

Js各种时间转换问题(YYYY-MM-DD 时间戳 中国标准时间)

1. 类型总结 指定格式 YYYY-MM-DD HH:MM:SS时间戳中国标准时间 Sat Jan 30 2022 08:26:26 GMT0800 (中国标准时间) new Date()获得系统当前时间就会是这种形式 2. 类型之间的转换 时间戳转换为 yyyy-mm-dd或yyyy-MM-dd HH-mm-ss function timestampToTime(timestamp) {var …

【vue】 配置代理

文章目录参考文档跨域问题引入配置代理解决跨域问题:方法一:方法二:使用方法二最终的文件:总结参考文档 尚硅谷视频:https://www.bilibili.com/video/BV1Zy4y1K7SH?p95 axios官网教程:https://axios-htt…

uniapp分包,小程序分包处理,详解(图解),手把手从0开始

一、为什么要分包 因小程序有体积和资源加载限制,优化小程序的下载和启动速度。 二、主包和分包 所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据pages.json的配置进行划…

微信小程序详细教程(建议收藏)

一.小程序的开发准备 1. 小程序的安装与创建 第一步 打开小程序官网第二步 找到开发管理,找到开发设置,下面有一个AppID,复制即可,后面开发小程序需要用 新建项目 ,需要先下载微信开发工具下载网址,安装完…

九个前端神奇库,让你的前端项目瞬间美化,甲方看了都落泪

九个前端神奇库,让你的前端项目瞬间美化,甲方看了都落泪 九个前端神奇库 文章目录九个前端神奇库,让你的前端项目瞬间美化,甲方看了都落泪1. Lottie-web/Bodymovin2. Parallax.js3. Magic Grid4. webslides5. SVG.js6. rellax7. …

【Vue面试专题】50+道经典Vue面试题详解!

目录前言相关学习资源01-Vue组件之间通信方式有哪些02-v-if和v-for哪个优先级更高?03-能说一说双向绑定使用和原理吗?04-Vue中如何扩展一个组件05-子组件可以直接改变父组件的数据么,说明原因06-Vue要做权限管理该怎么做?控制到按…

hexo主题应用

可以在hexo主题官网自己选择,官网网址:主题,选择哪个全凭自己的喜好。 我选择的一个主题是stun,官网效果图 安装主题stun git clone https://github.com/liuyib/hexo-theme-stun.git themes/stun安装依赖 git clone -b dist https://github.com/liuyib/hexo-theme-stun…

前端常见面试八股文

HTML篇 1、H5新增标签有哪些? 一、语义化标签 header、footer、nav、aside、section、article 语义化的意义? 1、更适合搜索引擎的爬虫爬取有效的信息,利于SEO。 2、对开发团队很友好,增加了标签的可读性,结构更…

VScode 看这一篇就够了

VScode 小白入门教程 VScode 小白入门教程 VScode简介VScode的下载与安装VScode的常用设置 基础设置禁用自动更新自动保存设置Vscode更换主题 VScode的常用快捷键开发人员常用的VScode插件使用VScode开始你的第一行C/C代码 VScode简介 VScode全称是Visual Studio Code&…

一文吃透JavaScript程序控制流与函数

文章目录思维导图💖程序控制流⛳️顺序结构⛳️分支结构💫比较运算符💫逻辑运算符💫if语句💫switch语句⛳️循环结构💫while语句💫do...while语句💫for语句💫break和cont…

【小程序开发】uniapp引入iconfont图标及使用方式

🧊 前言 本文主要讲述的是在使用uniapp中如何引入iconfont图标,以及两种常用的位置。 位置一:App下原生导航栏的按钮使用字体图标。位置二:页面中的任意位置使用iconfont图标。 🌺 正文 第一步:打开iconfo…

HTML爱心网页制作[樱花+爱心]

HTMLCSSJavaScript实现 先点赞后观看,养成好习惯 “不想动手的小伙伴可以直接拿网盘成品” 阿里云盘------提取码: 0d5j 效果图 注:任意浏览器都可以,建议使用谷歌浏览器 代码部分 代码如下仅供参考 可以直接拿去复制粘贴 <!DOCTYPE html> <html><head>…

2022最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)

程序员面试题库分享 1、前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 2、前端技术导航大全 推荐&#xff1a;★★★★★ 地址&#xff1a;前端技术导航大全 3、开发者颜色值转换工具 推荐&…

【vite·4】vite在多环境下的配置集成方案及defineConfig(非常详细)

vite的默认配置文件是vite.config.js&#xff0c;最基础的配置文件格式如下&#xff1a; export default {// 配置选项 };我们也可以通过 –config 命令行选项指定一个配置文件&#xff0c;命令行输入&#xff1a; vite --config my-config.js vite运行在node环境&#xff0c;…

【前端小技能】Vue集成百度离线地图

Vue项目集成百度离线地图 工作中遇到了一个需求&#xff0c;要在内网使用百度地图&#xff0c;那么肯定就是离线的地图了&#xff0c;查阅了一些博文&#xff0c;开发过程中也遇到了各种各样的问题&#xff0c;在此做下记录&#xff0c;希望带大家避坑&#xff0c;也给自己这两…