小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在app.js的onLaunch中会 去服务端请求一些全局数据,发现client端还没返回响应数据,就开始加载页面!
请问如何做到onLaunch中保证服务端请求回来再加载页面,目前感觉无解!
9 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这个问题我这边也有处理,目前是app那里绑定了一个事件,还有就是全局添加一个是否加载必要的初始数据成功的状态,然后page里就可以监听这个事件,或者判断状态是否成功来这些后续操作,这样就可以保证我app获取必要的数据了
app.$event.on(
'APP_READY'
, () => {
this
.loadInit();
});
if
(app.store.status == 2) {
}
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
能发个demo或者代码片段吗? 谢谢
可以写一个事件模块,在对应的页面的.js中监听事件,在appLunch的时候发送事件,并将对应的配置带过去。
局部数据可以这样! 在app launch里面拉取的全局数据,是不会去设置setData的,按照你说的做法会永远显示loading效果!
可以先将页面隐藏或者显示 loading 页面,然后拉取数据后再 setData 并显示页面
很常见啊: 比如一些全局的广告位资源, 一些公共的目录, 自动登录, 全局缓存数据。 我自己的场景是: app launch的时候我就去请求基本的配置信息,比如动态域名啊,公共的配置信息啊,自动登录,什么的 这再传动的app和传动web里面是很常见的场景啊,有的页面必须等服务端动态跟新完成后才能set data 各种view的属性的,局部数据还好说,大不了多几层then , catch ! ,有的数据只需要加载一次的,就是app启动的时候加载一次就好了,这时候就没招了 比如一个经典的场景: 用户扫描二维码做进到某个页面某个动作,这个动作要求用户必须先登录,为了用户体验是做成启动app launch的时候自动登录的,这时候登录还没完成,页面已经刷新了,知道用户的操作失败,因为这时候还没登录成功!
其它的场景还有好多:
比如全局的行业分类信息:
加载app的时候去服务端获取的,服务端还没有返回,页面就渲染了,导致页面没有分类信息,没有办法只能在本地放一份缓存的数据
页面的渲染目前是开发者无法控制的,请再具体描述一下需求场景,为什么一定要拉取数据后才能渲染页面。
局部数据可以等每个请求返回来以后再设置view需要渲染的数据,全局数据就不知道怎么搞了,比如onlaunch的时候去服务器拿全局数据回来,服务端还每没返回,页面就show了,悲剧把,坑啊
可以看我这个问题,描述的更清楚 https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=cc7ac31de03be188ca4c13eb6cf1925b&token=381155229&lang=zh_CN
就是需要满足去服务器取数据回来之后,再渲染页面,这要求是一个原子同步操作! 目前无解!
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这个问题我这边也有处理,目前是app那里绑定了一个事件,还有就是全局添加一个是否加载必要的初始数据成功的状态,然后page里就可以监听这个事件,或者判断状态是否成功来这些后续操作,这样就可以保证我app获取必要的数据了
app.$event.on(
'APP_READY'
, () => {
this
.loadInit();
});
if
(app.store.status == 2) {
this
.loadInit();
}
能发个demo或者代码片段吗? 谢谢
可以写一个事件模块,在对应的页面的.js中监听事件,在appLunch的时候发送事件,并将对应的配置带过去。
局部数据可以这样! 在app launch里面拉取的全局数据,是不会去设置setData的,按照你说的做法会永远显示loading效果!
可以先将页面隐藏或者显示 loading 页面,然后拉取数据后再 setData 并显示页面
很常见啊: 比如一些全局的广告位资源, 一些公共的目录, 自动登录, 全局缓存数据。 我自己的场景是: app launch的时候我就去请求基本的配置信息,比如动态域名啊,公共的配置信息啊,自动登录,什么的 这再传动的app和传动web里面是很常见的场景啊,有的页面必须等服务端动态跟新完成后才能set data 各种view的属性的,局部数据还好说,大不了多几层then , catch ! ,有的数据只需要加载一次的,就是app启动的时候加载一次就好了,这时候就没招了 比如一个经典的场景: 用户扫描二维码做进到某个页面某个动作,这个动作要求用户必须先登录,为了用户体验是做成启动app launch的时候自动登录的,这时候登录还没完成,页面已经刷新了,知道用户的操作失败,因为这时候还没登录成功!
其它的场景还有好多:
比如全局的行业分类信息:
加载app的时候去服务端获取的,服务端还没有返回,页面就渲染了,导致页面没有分类信息,没有办法只能在本地放一份缓存的数据
页面的渲染目前是开发者无法控制的,请再具体描述一下需求场景,为什么一定要拉取数据后才能渲染页面。
局部数据可以等每个请求返回来以后再设置view需要渲染的数据,全局数据就不知道怎么搞了,比如onlaunch的时候去服务器拿全局数据回来,服务端还每没返回,页面就show了,悲剧把,坑啊
可以看我这个问题,描述的更清楚 https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=cc7ac31de03be188ca4c13eb6cf1925b&token=381155229&lang=zh_CN
就是需要满足去服务器取数据回来之后,再渲染页面,这要求是一个原子同步操作! 目前无解!