在app.js的onLaunch中会 去服务端请求一些全局数据,发现client端还没返回响应数据,就开始加载页面!
请问如何做到onLaunch中保证服务端请求回来再加载页面,目前感觉无解!
这个问题我这边也有处理,目前是app那里绑定了一个事件,还有就是全局添加一个是否加载必要的初始数据成功的状态,然后page里就可以监听这个事件,或者判断状态是否成功来这些后续操作,这样就可以保证我app获取必要的数据了
app.$event.on( 'APP_READY' , () => { this .loadInit(); }); if (app.store.status == 2) { this .loadInit(); } |
很常见啊:比如一些全局的广告位资源,一些公共的目录,自动登录,全局缓存数据。我自己的场景是:app launch的时候我就去请求基本的配置信息,比如动态域名啊,公共的配置信息啊,自动登录,什么的这再传动的app和传动web里面是很常见的场景啊,有的页面必须等服务端动态跟新完成后才能set data 各种view的属性的,局部数据还好说,大不了多几层then , catch ! ,有的数据只需要加载一次的,就是app启动的时候加载一次就好了,这时候就没招了比如一个经典的场景:用户扫描二维码做进到某个页面某个动作,这个动作要求用户必须先登录,为了用户体验是做成启动app launch的时候自动登录的,这时候登录还没完成,页面已经刷新了,知道用户的操作失败,因为这时候还没登录成功!
其它的场景还有好多:
比如全局的行业分类信息:
加载app的时候去服务端获取的,服务端还没有返回,页面就渲染了,导致页面没有分类信息,没有办法只能在本地放一份缓存的数据