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

首屏加载

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

计算首屏加载时间公式

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
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPA(Single Page Application)单页面应用是一种基于前端的 Web 应用程序,所有的页面都由一个 HTML 文件和相应的 JavaScript 脚本动态生成。它的优势和劣势如下: 优势: 1. 用户体验好:SPA 采用异步加载的方式,只需要加载一次页面,之后的页面内容都是通过 AJAX 动态获取,用户不需要每次都重新加载整个页面,能够更快地响应用户操作,提升用户的体验。 2. 路由管理方便:SPA 采用前端路由技术,可以通过 URL 来切换不同的页面状态,不需要进行页面的重新加载,实现了页面的无刷新加载,提高了网站的速度和流畅度。 3. 开发效率高:SPA 的前后端分离模式,使得前端和后端可以独立开发和部署,提高了开发效率和灵活性。 4. 适用于大型应用:随着应用规模的增大,SPA 的优势尤为明显,因为它的性能和用户体验都能够得到保证。 劣势: 1. 首屏加载时间长:由于 SPA 的异步加载方式,需要在首次访问时加载所有的 JavaScript 和 CSS 文件,因此首屏加载时间会比较长。 2. SEO 不友好:由于 SPA 的所有页面都是由 JavaScript 动态生成的,搜索引擎的爬虫无法获取到所有的页面内容,因此对于 SEO 不太友好。 3. 浏览器兼容性问题:由于 SPA 使用了 HTML5、CSS3 和 ES6 等新技术,因此对浏览器的兼容性要求比较高,低版本的浏览器可能无法正常运行。 4. 对前端开发要求高:SPA 的开发需要掌握多种技术,包括前端框架、路由管理、API 接口设计等,对前端开发者的技术水平要求较高。 总之,SPA 单页面应用具有很多优势,能够提高用户体验和开发效率,但也存在一些劣势,需要在实际开发中进行权衡和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值