为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题?

首页打开速度慢的原因

其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需要的资源,将html js 图片文件下载到本地解析后显示出来,如果出现网页加载速度慢,打不开无非以下几个原因:

  1. 程序自身的Bug导致页面加载异常

  2. 项目的资源太大(如果js 大的图片)导致访问浏览器从服务器获取的所需资源的时间较长

  3. 网速慢等

所以当我们的项目出现这种问题时只要F12开启浏览器的控制台看下network中请求资源的耗时即可找出问题,通过观察,现在前端的单页面应用都是是靠 js 生成,因为是spa,而且所有的渲染都在脚本上,js执行需要时间。另外加载js也要时间,所以页面越大,加载时间越长,而且js执行的时间也长,所以会出现白屏的情况。

如何解决这个问题

导致这个问题的原因就是我们项目打包后资源太大导致,所以我们可以尽量的减少优化打包后文件的大小,这样问题便迎刃而解,怎么去优化通常有以下几点:

利用路由的懒加载实现组件的按需加载,这样配置后只有当路由被访问时才会加载对应的组件,而不是在加载首页的时候就直接加载。

  {   path: "/usercenter/personal",  title: "个人信息",  component: resolve => {    require(["@/views/usercenter/personal.vue"], resolve); //通过requie动态加载即可       }    },

异步加载组件

既然是异步加载,就会存在加载失败等异常情况。这时候怎么办呢?看官网绐出的另一个特性

这样就可以完美的解决我们的疑问了,当异步组件加载失败后会显示错误的组件。

1.  禁用线上生成的map文件

npm run build编译之后,我们查看编译生成的文件,发现有很多.map文件,这些文件也占了不小的空间。.map文件的作用是帮助编译后的代码调试,但是我们上线的代码已经调试完成,所以上线时可以不生成.map文件。

productionSourceMap:

false  //配置webpack中productionSourceMap值为false即可

2.  启用Nginx的gzip压缩功能

在nginx.conf中的http{ }中添加如下代码即可:

gzip on;gzip_disable "msie6";gzip_vary on;gzip_proxied any;gzip_comp_level 1;gzip_buffers 16 8k;gzip_http_version 1.0;gzip_min_length 256;gzip_types text/plain text/css    application/jsonapplication/x-javascript text/xml    application/xmlapplication/xml+rss text/javascript    application/vnd.ms-fontobjectapplication/x-font-ttf font/opentype   image/svg+xml image/x-icon image/jpeg image/gifimage/png;

配置好后重启服务重新访问网站在控制台中查看是否生效

3. 对于一些通用的工具库可以采用CDN引入,如Jquery,在index.html中从CDN引入,去掉其他页面的组件import,修改webpack.base.config.js,在externals中加入该组件即可。

4. 服务器端SSR渲染。 SSR需要在页面架构做一些对应的调整,稍微复杂,具体可参考https://segmentfault.com/a/1190000015964813。

5. 代码层面的优化,精灵图,组件化模块化,优化代码逻辑,提高代码复用性等。

 

了解新钛云服

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

原电讯盈科中国区副总裁加入新钛云服「附专访」

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案

新钛云服出品的部分精品技术干货

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

iframe js 加载失败_如何提高Vue项目首页的加载速度相关推荐

  1. vue 项目加载顺序_如何提高Vue项目首页的加载速度

    为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...

  2. vue 加载太慢_如何提高Vue项目首页的加载速度

    为何当一个VUE项目过大时,打包之后初次访问首页加载速度会异常的缓慢,是什么原因导致以及如何解决这些问题? 首页打开速度慢的原因 其实浏览器加载一个页面的过程就是通过http协议从服务器端下载项目所需 ...

  3. element ui 图片加载失败_解决Element UI - el-image 图片初始化加载失败问题

    最近使用elementUI的el-image发现经常会出现加载src失败的情况,问题估计就是e-image的src路径一旦初始化加载失败的话就没有异步刷新,(这个地方需要注意过这个问题的大佬解读下源码 ...

  4. vue项目首屏加载过慢解决方案

    前言 因为我的一个vue项目首页打开加载了好久,所以决定优化一下.发现是打包体积太大了,页面才加载慢主要是第三方库. 优化着优化着就想要更好一点,于是逛博客搜索,参照了几个博主的解决方法整理出一下几点 ...

  5. 【Vue-router中,require代替import解决vue项目首页加载时间过久】

    vue-router中,require代替import解决vue项目首页加载时间过久的问题 - 雨打芭蕉wt - 博客园

  6. htmlimg图片加载失败_动态加载图片失败的默认图显示

    经常碰到这类场景,动态加载图片时,因为一些原因(图片链接不存在啊,图片误删啊,图片路径不对或图片路径为空等等)导致真实图片显示不出来.那么为了提高用户体验,都会显示一个默认图. 动态加载图片失败时,显 ...

  7. 服务器图片加载慢_页面提高性能利器_懒加载

    哈喽,艾瑞巴蒂,现在搜狗商城产品需求已经趋于稳定,已经开始逐步的着手进行页面的性能提升工作.这不最近小编正在进行"页面懒加载需求"的功能测试.小编第一次听说这个名词,让我们一起了解 ...

  8. 模块d3d12.dll加载失败_语音控制模块

    说道作品的互动性,有什么能比语音控制更加炫酷呢? 今天介绍一款免编程非特定人声, 串口 语音识别模块LD3320 接线图: 调试:TXD/RXD通过串口模块连接电脑,将麦克风连接模块.打开上位机串口调 ...

  9. android tbs 内核加载失败_腾讯TBS初始化失败,加载失败问题(踩坑记录 64位手机无法加载x5)...

    问题一:ndk配置的问题 //X5兼容64位手机 ndk { abiFilters "armeabi", "armeabi-v7a", "x86&qu ...

最新文章

  1. (二)、MariaDB、Apache软件安装
  2. java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数
  3. 2018年10月28日宁波dotnet社区活动回顾及下次活动预告
  4. 代码太烂,可能是他离职的原因吧!
  5. 计算机二级考试改错题技巧
  6. 如何远程断点调试本地localhost项目
  7. gstreamer/deepstream方面的博文,全网首发且唯一,有图为证
  8. 关于Adapter模式
  9. Autodesk HSMWorks Ultimate 2019 Crack 破解版
  10. 计算机毕业论文基于Python实现的仓库库存管理系统进销存储系统
  11. PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克NKE股价时间序列数据...
  12. 二维码签到,签退和登陆
  13. Android浮窗实现(WindowManager)
  14. 记一次Oracle 11g xe 导出导入使用过程
  15. Linux 驱动开发 六十六:多点触控(MT)协议
  16. 2018-07-29 Sun. 随机取名byD大
  17. SpringBoot有关数组对象转JSON
  18. 【通信】经PPM调制的超宽带信号经斯白噪声信道的系统matlab仿真
  19. 程序员生存状态调查报告
  20. Python中字符串的操作(图文详情)

热门文章

  1. Linux有问必答:如何检查Linux的内存使用状况
  2. SaltStack部署
  3. 2015年07月04日
  4. hdu 4419 Colourful Rectangle (离散化扫描线线段树)
  5. 编译期间确定类型安全——泛型(Generics)
  6. [转][3DSMAX][贴图]如何检查遗失贴图
  7. DXperience,不能不爱
  8. 用《叩响C#之门》复习C#基础知识 第八章 面向对象编程:类和对象(二)
  9. 计算机网络(谢希仁 第七版) 数据链路层 个人笔记
  10. DialogFragment 将数据传回Activity的onActivityResult方法