1、什么是首屏加载?

首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容
通过DOMContentLoad或者performance来计算出首屏时间

// 方案一:
document.addEventListener('DOMContentLoaded', (event) => {console.log('first contentful painting');
});
// 方案二:
performance.getEntriesByName("first-contentful-paint")[0].startTime// performance.getEntriesByName("first-contentful-paint")[0]
// 会返回一个 PerformancePaintTiming的实例,结构如下:
{name: "first-contentful-paint",entryType: "paint",startTime: 507.80000002123415,duration: 0,
};

2、加载慢的原因?

网络延时问题
资源文件体积是否过大
资源是否重复发送请求去加载了
加载脚本的时候,渲染内容堵塞了

3、解决方案

减小入口文件积
静态资源本地缓存
UI框架按需加载
图片资源的压缩
组件重复打包
开启GZip压缩
使用SSR

1、在vue-router配置路由的时候,采用动态加载路由的形式

routes:[ path: 'Blogs',name: 'ShowBlogs',component: () => import('./components/ShowBlogs.vue')
]

2、合理利用localStorage,对于较小资源首次展示可以在本地存储,用户进来直接先读取本地
3、Ui库资源按需加载

import { Button, Input, Pagination, Table, TableColumn, MessageBox } from 'element-ui';
Vue.use(Button)
Vue.use(Input)
Vue.use(Pagination)

4、组件重复打包

假设A.js文件是一个常用的库,现在有多个路由使用了A.js文件,这就造成了重复下载
解决方案:在webpack的config文件中,修改CommonsChunkPlugin的配置

minChunks: 3

minChunks为3表示会把使用3次及以上的包抽离出来,放进公共依赖文件,避免了重复加载组件
5、开启GZip压缩
拆完包之后,我们再用gzip做一下压缩 安装compression-webpack-plugin

cnmp i compression-webpack-plugin -D

在vue.congig.js中引入并修改webpack配置

const CompressionPlugin = require('compression-webpack-plugin')configureWebpack: (config) => {if (process.env.NODE_ENV === 'production') {// 为生产环境修改配置...config.mode = 'production'return {plugins: [new CompressionPlugin({test: /\.js$|\.html$|\.css/, //匹配文件名threshold: 10240, //对超过10k的数据进行压缩deleteOriginalAssets: false //是否删除原文件})]}}

这个在服务器也要做相应的配置 如果发送请求的浏览器支持gzip,就发送给它gzip格式的文件 服务器是用express框架搭建的 只要安装一下compression就能使用

const compression = require('compression')
app.use(compression())  // 在其他中间件使用之前调用

SPA单页面首屏加载慢怎么解决???相关推荐

  1. 项目遇到的问题总结(四):单页面首屏加载慢解决方案

    项目遇到的问题总结(四):单页面首屏加载慢解决方案 参考文章: (1)项目遇到的问题总结(四):单页面首屏加载慢解决方案 (2)https://www.cnblogs.com/myfirstboke/ ...

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

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

  3. Vue复习笔记 (二)SPA单页面应用(优化首屏加载)

    一.概念 SPA(single-page application):通过动态重写当前页面来与用户交互 代码通过单个页面的加载而检索,或者动态装载适当的资源并添加到页面 JS框架如 react, vue ...

  4. 面试官:SPA(单页应用)首屏加载速度慢怎么解决?

    故心故心故心故心小故冲啊 文章目录 一.什么是首屏加载 二.加载慢的原因 三.解决方案 小结: 参考文献 一.什么是首屏加载 首屏时间(First Contentful Paint),指的是浏览器从响 ...

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

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

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

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

  7. SPA首屏加载速度慢怎么解决?

    一.什么是首屏加载? 首屏时间,指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容.首屏加载可以说是用户体验中最重要的环节. ...

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

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

  9. vue spa php,在Vue中有关SPA首屏加载优化(详细教程)

    本篇文章主要介绍了浅谈Vue SPA 首屏加载优化实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 写在前面 本文记录笔者在Vue SPA项目首屏加载优化过程中遇到的一 ...

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

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

最新文章

  1. BOM,DOM常见操作和DHML
  2. nvidia驱动程序与windows版本不兼容
  3. php中target用法,Yii使用DbTarget实现日志功能的示例代码
  4. 数据浪潮上的IP雄鹰
  5. redis.exceptions.AuthenticationError: Client sent AUTH, but no password is set
  6. 项目中SQL语句文件保存及提取方法
  7. packETH发包工具使用教程
  8. 给apache安装mod_rewrite模块
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的高校科研管理系统
  10. CodeForces 444C. DZY Loves Physics(枚举+水题)
  11. Netscaler 10.5 VPX与XenApp XenDesktop 集成配置系列之三enable StoreFront Remote Access
  12. Android View框架总结(四)View布局流程之Measure
  13. java 批次号生成_批次号生成
  14. 怎么在WINDOWS中运行C语言程序,在Windows下运行C语言程序
  15. stm8s stvd 编译出错
  16. IB选课指南及热门专业选课建议
  17. 凌晨 计算机博士,凌晨三点,被我的博士老婆喊起来写程序……
  18. 项目经理之项目经理应该做什么
  19. 揭秘 Cortex-A55,为何它是对未来数字世界举足轻重的处理器?
  20. js面向对象prototype

热门文章

  1. matlab fisher z变换,关于GCA统计
  2. bzoj4987 Tree 分类讨论+树形背包
  3. winpe修复计算机无法启动,巧用PE修复系统启动故障
  4. 1.urllib爬取数据
  5. Python实现云词图效果
  6. 怎么选择自己合适的LED驱动IC?
  7. Base64加密和解密使用
  8. 基于8253、8255芯片汇编实现简易电子琴
  9. python操作word文档,表格中插入文字及照片
  10. 摩根大通的企业级区块链解决方案—Quorum