SPA单页面应用首屏加载速度慢解决方案

本文探讨了前端开发中如何通过减少入口文件体积、静态资源本地缓存、UI按需加载、避免组件重复打包、图片压缩和开启GZip压缩等六个关键步骤来解决首屏加载慢的问题,助力网站性能提升。

前端开发过程会遇到首屏页面加载缓慢的情况,
以下给出几种了解决方案:

1、减少入口文件体积
常用的手段是路由懒加载,只有在解析路由时才会加载组件

const routes = [
{
	path: 'blogs',
	name: 'blogsName',
	component: () => import('./components/BlogsName.js')
}

2、静态资源本地缓存
后端返回资源: 采用HTTP缓存
前端合理利用:localStorage
CDN静态资源缓存 react, react-dom, react-router-dom, axios

3、UI框架按需加载
在日常使用的UI框架,例如element-UI, antd, 我们要按需引入
import { Button } from ‘antd’

4、避免组件重复打包
假如A.js 文件是一个常用的库,现在有多个路由使用A.js文件,这样就造成重复下载
解决方案:在webpack的config文件中,修改CommonsChunkPlugin的配置minChunks:2,
minChunks为2会把使用2次及以上的包抽离出来,放进公共依赖文件中避免了重复加载组件。

5、图片资源压缩
图片资源虽然不在编码过程中,但它却是对页面性能影响最大的因素
对于所有的图片资源,我们可以进行适当的压缩
对于页面上使用的icon,可以使用在线字体图标,或者雪碧图,将众多的小图标合并到一张图中,用以减轻http请求的压力

6、开启GZip压缩
拆完包后,我们再用gzip做一下压缩,安装compression-webpack-plugin
webpack中配置安装

const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productGzipExtensions = ['js', 'css']
// 配置compression-webpack-plugin压缩
new CompressionWebpackPlugin({
	algorithm: 'gzip',
	test: 'new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$')',
	threshold: 10240,
	minRation: 0.8
})
通过页面性能测试概念+页面加载过程+页面性能指标+页面性能测试工具的学习,可以学到如下内容:①WEB网站页面性能的指标(白时间、加载完成时间、FP、FCP、DCL、CLS、FPS等);②WEB网站页面性能测试策略;③WEB网站页面加载过程(前端基础语言:HTML+CSS+JavaScript,DOM、CSSOM、渲染树、布局、绘制);④WEB网站页面性能测试工具的实际操作和功能介绍(开发者工具:控制台、网络、性能、Lighthouse、FPS渲染统计等);⑤WEB网站页面性能测试报告编写。⑥WEB网站页面性能测试步骤和实际操作。课程内容:第一章:课程简介1、课程介绍2、课程大纲第二章:页面性能测试1、页面性能测试概念2、页面性能测试专业术语3、页面性能测试策略第三章:页面加载过程1、HTML概念,HTML5实例,HTML5文档2、CSS概念,CSS实例,CSS文档3、JavaScript概念,JavaScript脚本实例和作用4、DOM和CSSOM理解5、HTML5渲染引擎理解6、HTML5页面内容渲染的过程,HTML渲染树第四章:页面性能测试工具1、页面性能测试具体工具2、Chrome开发者工具介绍第五章:页面性能测试工具-控制台:window.performance1、控制台:window.performance介绍2、window.performance.timing执行结果加载字段理解3、window.performance.timing执行结果属性对应页面阶段理解4、window.performance页面性能参数计算5、window.performance页面性能关键指标计算第六章:页面性能测试工具-网络面板1、Chrome-开发者工具-网络面板介绍2、Chrome-开发者工具-网络-瀑布流指标第七章:页面性能测试工具-性能面板1、Chrome-开发者工具-性能面板-使用方法2、Chrome-开发者工具-性能面板介绍3、Chrome-开发者工具-性能面板-控制按钮区域4、Chrome-开发者工具-性能面板-Overview区域5、Chrome-开发者工具-性能面板-火焰图区域6、Chrome-开发者工具-性能面板-内存图区域7、Chrome-开发者工具-性能面板-统计汇总区域8、Chrome-开发者工具-性能面板-统计汇总区域-摘要内容9、Chrome-开发者工具-性能面板-统计汇总区域-事件时长、调用、发生顺序第八章:页面性能测试工具-FPS监控1、Chrome-开发者工具-FPS监控-FPS介绍、FPS视觉效果、FPS查看方法第九章:页面性能测试-Lighthouse面板1、Chrome-开发者工具-Lighthouse介绍、操作方法、运行的生命周期2、Chrome-开发者工具-Lighthouse报告指标分析3、Chrome-开发者工具-Lighthouse的报告优化建议第十章:页面性能测试工具-Performance insights面板1、Chrome-开发者工具-Performance insights操作方法2、Chrome-开发者工具-Performance insights分析报告第十一章:网速调研1、全国网速的调研和本机网速测试第十二章:页面性能测试总结1、页面性能测试指标采集方式2、页面性能测试报告3、页面性能测试-操作步骤​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值