小程序优化实践

栏目: Node.js · 发布时间: 5年前

内容简介:对小程序的一些原理和异同点,可以移步上一篇文章:基于实际优化数据总结下这篇文章.废话不多说,我们直接进入正题吧换句话说,如果我们想加快首屏的渲染速度,就得严格控制初次加载包的大小。如何控制包大小,可以从下面2个方面进行控制:

对小程序的一些原理和异同点,可以移步上一篇文章: 小程序那些你可能不知道的事

基于实际优化数据总结下这篇文章.废话不多说,我们直接进入正题吧

小程序优化实践
相信关注小程序的朋友们,对这张图片一定不陌生。 经过大量的测试; 首屏时间的长短,和资源准备有密不可分的关系。

换句话说,如果我们想加快首屏的渲染速度,就得严格控制初次加载包的大小。如何控制包大小,可以从下面2个方面进行控制:

  1. 分包加载
  2. 压缩包

经过各种处理之后,我们得出的结果是下面这样子

小程序优化实践
一开始,考虑到项目较小,没有采取分包模式,后来,需求越来越多……代码量越来越多, 所以说,不要总感觉项目一开始很简单,什么都不用,最好还是别偷懒,该规划的规划,不然到后期改来改去会想哭。

把用户可能第一次进入就点到的页面放在主包中,其余放在分包中。如下目录

├─pages          小程序主包页
  ├─……                  
├─subPages       子包内容
  ├─……   
复制代码

然后,我们在 app.json 中分包配置好主包和分包

{
    "pages": [
        "pages/index/index"
    ],
    "subPackages": [
        {
            "root": "subPages",
            "pages": [
                "pages/fenbao/fenbao"
            ]
        }
    ]
}
复制代码

这样就大功告成了。不过分包什么时候加载?

如果等到用户进入分包再进行加载,就实在太慢了,还好官方给出了预加载的配置。如下:

{
    "preloadRule": {
        "pages/index/index": {
            "network": "all",
            "packages": [
                "subPages"
            ]
        }
    }
}
复制代码

上面表示,我进到 pages/index/index 页面的时候,就开始预加载分包 subpages 里面的内容。这样一折腾,进入分包的时候,感知也不是很明显。

但是,坑来了,一开始,采用的目录是下面这样子的,我们直接用下面的目录在小程序上运行,上传预览。

├─pages            小程序主包页
  ├─……                  
├─subPages         子包内容
  ├─……          
├─app.js           入口文件
├─app.json         配置文件
├─app.css          主 CSS 文件
├─config 	   gulp 配置文件
├─gulpfile.js      gulp 文件
复制代码

后来我们发现,小程序其实很傻很天真,它把该目录的所有文件都一股脑上传上去,也就是用户要使用这个小程序,它也需要额外下载 config 文件夹 和 gulpfile.js 这些对运行时无用的代码。

因此,把上面的目录重新调整一波,变成下面这个样子,小程序运行选取 src 目录

├─src                 源码    // 重点关注这里
  ├─pages             小程序页面
    ├─....
  ├─subPages          子包内容
    ├─....
  ├─app.js            入口文件
  ├─app.json          配置文件
  ├─app.css           主 CSS 文件...
├─gulpfile.js         gulp 文件  // 重点关注这里
├─config              gulp 配置文件  // 重点关注这里
复制代码

这样一体验,速度快了,腰不疼了,头发也不掉了。不过感觉还是比较慢的,再压缩一波代码吧。虽然小程序官方说勾选自动压缩代码,会帮我们进行压缩,但是不知道为啥,并木有…… 自己再压缩操作一波,速度又明显提快了。

很简单,采用 gulp 进行一波操作,最主要还是压缩一波图片,去除掉相关注释等等,代码比较简单

gulp.src('./src/**/*.wxml').pipe(stripComments()).pipe(gulp.dest(distPath))
gulp.src('./src/**/*{.png,.jpg,.gif,.svg}').pipe(imagemin({ progressive: true })).pipe(gulp.dest(distPath))
复制代码

至于第三张图,接口缓存等等,网上一大堆资料,就不在这里献丑了~


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

王牌创业者:风口游戏

王牌创业者:风口游戏

澈言 / 百花洲文艺出版社 / 2018-2 / 48.00

《王牌创业者:风口游戏》是一部围绕互联网创业展开的商战小说:故事的主人公莫飞是“毕业即创业”的当代年轻创业者的典型代表,他大学在校时就凭借创业项目拿到了天使融资,创业几年后,当产品估值越做越大时,他却忽然遭遇创业伙伴及投资人的联手陷害,失去了自己一手建立的公司。 此时, 莫飞的女友林姿参加了一场声势浩大的创业比赛,并一举夺魁,直进决赛。可在决赛中,突如其来的一场新闻事件让她名誉扫地。最终,为......一起来看看 《王牌创业者:风口游戏》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具