SPA单页面应用首屏加载速度提升方法

  • 首屏加载
  • 计算首屏加载时间公式
  • 解决方法
    • 减少入口文件体积
    • 静态资源本地缓存
    • UI框架按需加载
    • 避免组件重复打包
    • 图片资源压缩
    • 开启GZip压缩

首屏加载

首屏加载:用户输入网址到首屏内容渲染完成时间。此时页面不一定要全部渲染完毕,但是用户第一眼看到的内容需要展示完全。

计算首屏加载时间公式

times = (performance.timing.domComplete - performance.timing.navigationStart) / 1000

解决方法

减少入口文件体积

通过路由懒加载,只有在解析路由的时候才加载组件

const routes = [{path: "Home",name: "Home",component: () => import('./components/home.vue')}
]

静态资源本地缓存

后端返回资源:采用HTTP缓存(强制缓存 + 协商缓存)
前端合理利用local storage
CDN静态资源缓存 vue vuex axios

UI框架按需加载

使用element、antd、uview之类的ui框架时用到什么组件就加载什么组件

避免组件重复打包

多个路由使用相同库时抽离成公共库
方案:在webpack的config文件中,修改CommonsChunkPlugin的配置民Chunks:2
minChunks就会把使用2次及以上的包抽离出来,放到公共依赖文件中,避免重复加载

todo:vue编译分片打包

图片资源压缩

对于页面上的icon,可以使用在线字体图标,或者雪碧图 ,将众多的小图标合并到一张图片上,减轻http请求压力

开启GZip压缩

拆完包后,用gzip做一下压缩,
安装 compression-webpack-plugin

在webpack中配置压缩

const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js','css']
// 配置compression-webpack-plugin压缩
new CompressionWebpackPlugin({algorithm: 'gzip',test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),threshold: 10240,minRatio: 0.8
})

SPA单页面应用首屏加载速度提升方法相关推荐

  1. 浅谈Vue单页应用首屏加载速度优化方案

    心语:最不会利用时间的人,最会抱怨时间不够 趁着五一放假,刚好最近天气也是不好,.所以抽出一点时间写一点东西,也算是不辜负这个美好的假期吧!小编也祝愿大家五一快乐,玩得愉快哈 随着各大前端框架的诞生以 ...

  2. 单页应用首屏加载速度慢怎么解决?

    1.什么是首屏加载时间? 首屏加载时间是指浏览器从相应用户输入网址到首屏内容渲染完成的时间,从用户的角度来说就是:"地址栏输入网址之后网页呈现的速度".整个网站并不需要全部加载完成 ...

  3. VUE单页应用首屏加载速度优化方案

    单页应用会随着项目越大,导致首屏加载速度很慢!!!以下给出在下知道的几种优化方案 使用CDN资源,减小服务器带宽压力 路由懒加载 将一些静态js css放到其他地方(如OSS),减小服务器压力 按需加 ...

  4. SPA(单页应用)首屏加载慢的优化方案

    一. 什么是首屏加载时间? 首屏加载时间是指浏览器从相应用户输入网址到首屏内容渲染完成的时间. 整个网站并不需要全部加载完成,但需要展示当前可视窗口中的内容,也就是首屏. 从用户的角度来说就是:&qu ...

  5. vue单页应用首屏加载速度慢如何解决

    首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间. 一.加载慢的原因 在页面渲染的过程,导致加载速度慢的因素可能如下: 网络延时问 ...

  6. 单页应用的优缺点,单页应用首屏加载优化、小程序首次启动速度优化

    单页应用的优缺点 单页应用,简称(Single Page Application)是指整个应用只一个HTML页面,所有的功能和交互都在这个页面完成,利用JavaScript动态改变HTML内容. 优点 ...

  7. [vue] SPA首屏加载速度慢的怎么解决?

    [vue] SPA首屏加载速度慢的怎么解决? 1.通过Gzip压缩 2.使用路由懒加载 3.利用webpack中的externals这个属性把打包后不需要打包的库文件都分离出去,减小项目打包后的大小 ...

  8. vue首屏加载速度慢_Vue首屏加载速度优化如何提升80%?本文详解

    在Vue项目中,引入到工程中的所有js.css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏.若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏 ...

  9. Vue首屏加载速度优化,提升80%以上

    在Vue项目中,引入到工程中的所有js.css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏.若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏 ...

最新文章

  1. 【采集层】Kafka 与 Flume 如何选择
  2. carsim学习笔记3——仿真环境(驾驶员道路环境)
  3. Cacls命令使用格式
  4. 高德地图车道级导航适配OPPO Find N折叠屏手机
  5. QMessagebox简单使用
  6. /dev/tty和/dev/console
  7. KVM virtio bug整理
  8. vue中axios的基本使用,天气查询案例
  9. ORACLE数据库的模式对象的管理与维护
  10. 微服务分布式基础项目(免费答疑):SpringBoot2.X+SpringCloud+SpringDataJPA+Consul+Feign+Swagger (还会持续更新,不懂的可以问博主)
  11. 笔记本计算机被限制无法上网,电脑上网受限制或无法连接怎么办 电脑上网受限制或无法连接的解决方法...
  12. win 10 设置静态ip子网前缀长度的计算方法
  13. 网络连接有个感叹号的原因及解决方法
  14. Go 语言之 go-app
  15. dos攻击与ddos攻击的区别
  16. Xml字符串转Map
  17. python docx 提取图片_Python提取docx文档中所有嵌入式图片和浮动图片
  18. scala学习笔记(十三):implicit 详解
  19. [看门狗]基于Linux的嵌入式系统全程喂狗策略
  20. /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found

热门文章

  1. 2020年软件测试基本知识精要【乐搏TestPRO】
  2. Tp5 实现短信发送及页面倒计时
  3. python取前三位_python的字符串截取||取字符串前三位
  4. 这几excel操作技巧,每一个都是大神和菜鸟的分水岭!
  5. 【linux系统用户管理】
  6. CentOS7安装onlyoffice实现word的在线预览和编辑
  7. 搭建qnx开发环境,虚拟qnx系统+虚拟win7系统+QNX Momentics IDE 4.6
  8. 吡啶及吡啶衍生物废水处理
  9. 非暂态计算机可读存储介质是什么,检测空气质量方法及装置、空气净化器控制方法及装置与流程...
  10. mad离群值_全部关于离群值