微信小程序中的不同场景,不同的判断,请求的时机

本来5月1之前就想写一下一篇关于小程序不同场景下发送ajax请求的问题,但是放假的前一天,出了个大bug,就是因为我修改不同的场景下执行不同的逻辑造成的

1、首先,在小程序里,微信做了很多的缓存,我们可以很好的利用这些缓存,比如,两个tab页面,我自由切换的情况下,缓存会记录我的滚动状态,切换状态,页面里radio的状态,总之所有的状态都会记录下来。

2、但是我们每次退出小程序后再次进来时,要求得重新刷新数据,这样的话,很自然就想到onshow钩子了,在onshow里,页面每次进来时都会调用,但是请求如果写到这个钩子里,就会每次都切换tab时重新请求数据,我原来的缓存也用不了了,这样很影响性能,其实每次进来的时候,微信小程序里会先走到app.js里,里面也有onshow钩子,但是之后的所有操作都不会走入这个钩子里,这就解决了一个很重要的性能问题,每次我进入小程序里请求数据,而不是每次进入页面请求,这样的话我也不用填onload里的坑了

3、思路很明确了,逻辑分层,解决问题,app.js作为整个应用层面的逻辑层,负责数据的请求和存储,在页面内,负责数据的修改和页面特效的切换,场景的话,利用app.js里的钩子可以很好的区分。

4、做了一个简单的流程图

 

posted on 2019-05-05 16:09  杨龙飞  阅读(584)  评论(0编辑  收藏  举报

导航

Fork me on GitHub