SPA首屏加载优化

127 阅读2分钟

image.png

1、什么是首屏加载?

首屏加载时间主要看FCP(First Contentful Paint)这个指标,它指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容

首屏加载可以说是用户体验中最重要的环节

4、常用优化方案

 比较常见的几种优化方式如下:

a、减少入口文件体积

常用手段是 采用路由懒加载的方式去减少,不同的组件拆分成不同的代码块

b、静态资源本地缓存 合理利用本地缓存localStorage HTTP缓存, 设置cache-control、Etag和Last-Modified Service Worker缓存,它是一种利用Service Worker API实现的离线缓存功能,它可以使用户在离线的情况下访问网站内容,从而提高用户体验 c、尽可能采取按需引入资源 像element UI、Ant Design、ECharts等都是支持按需引入的,不把整个库直接引进来,能有效降低项目体积

d、避免组件重复打包 

webpackconfig文件中,修改CommonsChunkPlugin的配置

minChunks为3表示会把使用3次及以上的包抽离出来,放进公共依赖文件,避免了重复加载组件

e、对图片资源进行压缩

图片资源是http请求里比较大的一个消耗,应该进行适当的压缩,对于一些icon,可以使用在线字体图标,比如阿里巴巴的矢量图标库 iconfont

f、开启Gzip压缩

GZip压缩能把资源体积压缩到只有原本的30%左右,如果项目够大,这个优化效果是非常可观的。

g、使用SSR

服务端渲染,在服务端生成好html字符串,再发送到浏览器,服务端计算速度肯定会比浏览器快,也是减少首屏时间的一个好方法,vue2和Vue3都推荐用Nuxt来实现ssr

服务端渲染 (SSR) | Vue.js

转载:SPA首屏加载慢的优化方案_spa首屏优化-CSDN博客