移动端h5首屏加速

为什么我的手机白屏了?是不是你们APP有问题???-某位不愿意透露姓名的用户反馈

目前,我们团队的h5移动端项目皆采用vue2.0框架进行开发,由于SPA的特性,导致首页加载的时候会比平常页面加载的速度稍微慢点,在网络不好的极端情况下可能会导致类似网页白屏的情况,就会影响用户的体验,我们团队采用了多种办法,绞尽脑汁,头发掉光,终于能够控制在正常wifi情况下,首页加载速度<1s,下面拿我负责的项目进行一下
项目的优化说明:

1.vue路由懒加载
这个官网上面有说明,直接照着做就行
官网例子

2.首页加载资源控制
这个就是说首页必须控制加载的资源,实现按需加载,这个首页包括你路由的首页及index.html文件。路由的页面尽量简洁,所有用到的icon建议都使用一下tingpng压缩一下,如果首页用到了组件,使用组件异步加载。index.html文件里面不需要的资源全部清理掉,我们项目在index.html中做了全移动平台的兼容逻辑,这里会用到资源动态加载,本文最后会提供一个简单的动态加载的方法

3.开启Gzip压缩
具体方法请百度,注意开启压缩项目需安装compression-webpack-plugin插件才能正常运行

4.首页GIF图过渡或者首页预渲染
这2种方法都是能够提示用户体验的方法,使用的原理都相同,vue项目启动会在index.html中找到id=app的div并将内容挂载进去,那么项目未启动前index.html中div.#app这个元素中的内容将会显示给用户查看,那么我们可以将一个比较小的GIF图或者一段内容放在此处,项目启动后将会自动清理完毕。其实我们团队有好几个项目都采用了首页预渲染的方式,但是我个人感觉现在的方式有个巨大缺陷且收益微小,所以我负责的项目暂时未采用首页预加载,我个人推荐使用GIF图进行过渡

5.服务器渲染(SSR)
解决问题的终极解决方案,将用户加载压力转移至服务器,但是不适合我们项目,所以未启用

6.渐进式方案(PWA)
能够实现项目非首次秒加载,项目已成功启用且上线

//动态加载的方法如下所示
//动态加载完毕js文件可执行回调函数,动态加载css文件执行回调由于浏览器之间判断加载完毕的逻辑差异巨大且逻辑复杂,暂不处理
//type=1为css,type=2为js,source为加载的url资源,callback为回调函数
function dynamicLoadResources(type,source,callback){
    if(!source || source.length ===0){
      throw new Error('dynamic load resources need resources');
    }
    var head = document.getElementsByTagName('head')[0]
    if(type == 1){
      var link = document.createElement('link')
      link.href = source
      link.rel = 'stylesheet'
      link.type = 'text/css'
      head.appendChild(link)
    }else if(type == 2){
      var script = document.createElement('script')
      script.src = source
      script.type = 'text/javascript'
      head.appendChild(script)
      script.onload = callback
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值