首屏加载时间过长?首屏白屏问题解决?打包文件体积过大优化?

一、vue首屏加载过慢

1.Vue-router 路由懒加载

2.在webpack打包的过程中,将多余文件去掉,如不生成map文件,即在config/index.js中将productionSourceMap的值修改为false,就可以在编译时不生成.map文件了

3.第三方库使用CDN引入:

  1)第一步:可以采用CDN加速引入(防止挂掉,可下载到本地上传到自己的服务器)

  2)第二步:分离打包第三方资源包,去vue-config文件中去配置externals,写上你已经在index.html中引用了cdn的库


4.gzip压缩:前端配置gzip压缩,并且服务端使用nginx开启gzip,用来减小网络传输的流量大小

1)命令行执行:npm i compression-webpack-plugin -D

2)在webpack的dev开发配置文件中加入如下代码:

const CompressionWebpackPlugin = require('compression-webpack-plugin')
plugins: [
   new CompressionWebpackPlugin()
]

5.不要滥用第三方库,用到一个功能点整个第三方全部引入,按需引入;一个项目尽量使用一个库

6.代码层面的优化

1)减少http请求数,减小请求大小

2)图片使用雪碧图,使用字体图标或者使用svg文件等;图片懒加载

3) cdn内容分发网络

4)javascripte defer 异步加载延迟执行

5)异步加载js,async是JavaScript下载完成,就会立即执行代码,等待执行完之后才继续解析HTML

6)合理使用缓存

7)优化代码,组件化、模块化,代码重用

8)css放在头部,js放在底部

9)合理使用v-if和v-show

10)for循环设置key值

11)服务端渲染

12)DNS预解析

13)Defer加载Js

二、白屏优化

1.完成以上优化加载基础上,白屏期间加骨架屏和loading

2.服务端渲染,也就是ssr技术,比如nuxt.js技术做ssr开发

三、打包体积过大问题

1.webpack打包不生成map文件 config/index.js  productionSourceMap=false

2.第三方库使用CDN引入

3.gzip压缩

4.不要滥用第三方库,按需引入组件

5.代码精简及静态资源如图片压缩合并等

参考:vue 项目首页加载速度优化以及解决首页白屏问题_vue首页加载过慢白屏_郝艳峰Vip的博客-CSDN博客vue 项目首页加载速度优化以及解决首页白屏问题_vue首页加载过慢白屏_郝艳峰Vip的博客-CSDN博客vue 项目首页加载速度优化以及解决首页白屏问题_vue首页加载过慢白屏_郝艳峰Vip的博客-CSDN博客

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当页面内容较多或需要加载大量资源时,页面加载时间会变长,导致用户看到白屏时间变长,影响用户体验。为了解决这个问题,我们可以封装一个loading图来提示用户页面正在加载中。 下面是实现的详细思路和代码: 1. 创建一个loading图的HTML结构,可以使用CSS或者图片实现,也可以使用第三方库如Spin.js等。 ```html <div class="loading"> <div class="loading-spinner"></div> </div> ``` 2. 使用CSS对loading图进行样式设置,使其居中并在页面加载完成前显示出来。 ```css .loading { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #ffffff; z-index: 9999; } .loading-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; border-radius: 50%; border: 3px solid #ccc; border-top-color: #ff6a00; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } ``` 3. 在页面加载完成后隐藏loading图。可以使用window.onload或者jQuery中的$(document).ready()方法来实现。 ```js window.onload = function() { document.querySelector('.loading').style.display = 'none'; } ``` 4. 将loading图的代码封装成一个函数,方便在各个页面中调用。 ```js function showLoading() { const loading = document.createElement('div'); loading.className = 'loading'; loading.innerHTML = '<div class="loading-spinner"></div>'; document.body.appendChild(loading); } function hideLoading() { const loading = document.querySelector('.loading'); loading.parentNode.removeChild(loading); } ``` 通过这种方式,我们可以在页面加载过程中显示loading图,使用户感知到页面正在加载,并在页面加载完成后隐藏loading图。这样可以提高用户体验,减少用户的等待时间

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值