小程序加载快慢的问题

关于小程序的加载快慢这但是一大学问,自古以来性能都是重点,因此下面我浅谈一下本身遇到的问题和解决方法吧前端

 

首先,先从网络请求network提及算法

这里基本不关前端的事情,可是这也是优化小程序的一大重点,后端响应咱们请求数据的速度影响了整个页面的速度,因此,把它拿到第一位小程序

 

 

 请求超过300ms就已经算是慢了,因此会影响整体速度。后端

建议:叫后端优化接口,加快响应速度。api

还有,尽可能减小无谓的请求,,将数据合并到一个接口上,这样能够方便操做,又能够节约资源,(前提不被后端责骂)缓存

第二:图片服务器

图片的话,对越用户上传的图片的大小验证一下,大于500K的拒绝就行了,尽可能通过压缩在上传服务器,若是文中含有大量的图片的,尽可能使用base64,转换一下,能够减小点资源,网络

多图片的状况况下,最好作一个懒加载技术。。。把一些体积较大的图片资源改成使用线上资源。具体作法是将素材先上传到 cdn,而后在小程序中直接使用线上图片地址。性能

不懂得如何压缩大小的能够看看这个https://blog.csdn.net/Young_Gao/article/details/88183442现成的优化

第三:控制小程序包 的大小 减少资源包体积

精简第三方依赖  尽可能少用第三方包,第三方的方有的会引用比较大的模块,尽可能节约吧,减小没必要要的代码...包括一些注释掉的,它好像也会打包进去,因此最好就删除吧,

第四:关于调用第三方接口的问题

调用了第三方的接口速度会很慢——例如调用了腾讯的获取定位,有时候须要1秒才能响应,若是公司内部有本身的接口和算法,仍是调用本身的吧,哪怕是腾讯的api有时候他响应的速度也会超过300ms,尽可能少用

第五:关于setData

5.1. 频繁的去 setData

在咱们分析过的一些案例里,部分小程序会很是频繁(毫秒级)的去setData,其致使了两个后果:

  • Android 下用户在滑动时会感受到卡顿,操做反馈延迟严重,由于 JS 线程一直在编译执行渲染,未能及时将用户操做事件传递到逻辑层,逻辑层亦没法及时将操做处理结果及时传递到视图层;
  • 渲染有出现延时,因为 WebView 的 JS 线程一直处于忙碌状态,逻辑层到页面层的通讯耗时上升,视图层收到的数据消息时距离发出时间已通过去了几百毫秒,渲染的结果并不实时;

5.2. 每次 setData 都传递大量新数据

setData的底层实现可知,咱们的数据传输实际是一次 evaluateJavascript 脚本过程,当数据量过大时会增长脚本的编译执行时间,占用 WebView JS 线程,

5.3. 后台态页面进行 setData

当页面进入后台态(用户不可见),不该该继续去进行setData,后台态页面的渲染用户是没法感觉的,另外后台态页面去setData也会抢占前台页面的执行。

第六:变量

每一个页面都有生命周期的销毁阶段,在这阶段里面讲存在data里面的变量所有释放(不会返回这页面的时候能够这样作),你二次进入的时候会比上次快上一点,可是不会很明显,若是变量特别庞大的时候,这个时候就会显得特别明显,我作的都是二三十个变量。。。这个能够忽略

第七:缓存

相信每一个页面多多少少都会有复用的东西,若是有复用的变量,直接存到本地里面,而后等小程序整个关闭以后去本地储存删掉,

若是首页加载的东西不少的,能够把整个页面缓存下来,而后,再次进这页面的时候渲染缓存的,等接口数据都请求到了,在进行静默渲染,

 

但愿我讲的额能帮到你们,感谢你的观看

相关文章
相关标签/搜索