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

1 篇文章 0 订阅

一. 什么是首屏加载时间?

首屏加载时间是指浏览器从相应用户输入网址到首屏内容渲染完成的时间。
整个网站并不需要全部加载完成,但需要展示当前可视窗口中的内容,也就是首屏。
从用户的角度来说就是:“输入网址到看到页面具体内容的速度”。
首屏加载时间可以说是用户体验中最重要的环节。

二. 查看我们应用的首屏加载时间?

  1. 通过 window 下面的一个api performance 计算

performance 对象中可以获取到当前页面与性能相关的信息

我们打印看一下 performance 对象
在这里插入图片描述

// 计算首屏加载的时间(s)
let awiatTime = (performance.timing.domComplete - performance.timing.navigationStart) / 1000;

在这里插入图片描述
2. Chrome控制台中的Network直接查看

在这里插入图片描述

三. 首屏加载慢的原因?

  1. 网络延迟
  2. 入口文件体积过大
  3. 资源重复请求加载
  4. 加载脚本过程中,渲染堵塞。

四. 优化方案

  1. 网络延迟

换个好点的网

  1. 入口文件体积过大

    1. 路由懒加载: 以函数的形式加载路由,这样就可以把各自的路由文件分别打包,只有在解析给定路由的时候才会加载对应的路由组件。
    2. 静态资源本地缓存: 合理使用 Web Storage;开启 cdn 加速,缓存静态资源;
    3. 按需加载: 平常使用的UI框架不要整个引入,只引入项目使用到的组件
    4. 图片压缩: 项目使用到的 icon图标,并不需要一张张存到本地,可以使用在线图标代替;
  2. 资源重复请求加载

一个js脚本被多个路由引入,就造成了重复下载,多个包中就存在多段相同的代码(就是这段js脚本)
在webpack的config文件中,修改CommonsChunkPlugin的配置,设置minChunks为2表示会把使用2次以上的包抽离出来,放进公共依赖文件,避免了重复加载组件

  1. 加载脚本过程中,渲染堵塞。

使用 SSR 也就是服务端渲染: 即组件和页面通过服务器生成html字符串,再发送到浏览器。vue可以使用Nuxt.js实现服务端渲染。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
通过页面性能测试概念+页面加载过程+页面性能指标+页面性能测试工具的学习,可以学到如下内容:①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
发出的红包

打赏作者

温情key

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值