数据异步加载速度 PK onLoad加载速度,当后者速度比前者快的时候,我们该怎么办
来源:
幸福一点点
2016-12-28
问题起源于【6-4 使用数据填充新闻详情页面】,先来张图,回忆一下,嘿嘿:
【确认?】this.data.postData = postData;这种同步方法,在前面的某个章节中老师特别提醒新版已经不支持了,找了半天忘记具体在哪里了,所以就不上图了,我为了确认我没记错特意的实验了一下,确实不支持了;在这里再次确认一下,我接下来问的问题是关于这块的!!!
在这节课最后几分钟,老师说过:(麻烦老师确认一下,看看学生理解的是否错误)
【我的理解:】
this.data.postData = postData; 属于 同步加载数据
this.setData({
postData : postData
})
属于异步加载数据;
【问题】
异步加载数据,存在,数据还没有完全加载到 data{} 里面,onLoad就已经完成了,导致的后果就是页面显示不全;
而且,现在新版本又不支持同步加载数据,并且上面的现象在现实中发生的概率非常的大(自我感觉,因为实际的工作中后台给出的数据量是非常大的,所以在这里大胆的猜测这种情况发生的几率大)
当然,我们只加载第一屏的内容,这种情况发生的几率,非常非常的小,但是还是存在;所以,
【面对的情况就是】
同步加载数据不支持,只能选择异步加载数据
虽然我们可以用分页来降低这种情况的发生,但是还是会发生加载不全的现象
麻烦老师帮忙看一看,这种担心是否有必要
4回答
-
7七月
2016-12-28
this.data 是改变了初始化变量,这个操作是同步的。this.setData是立即更新绑定变量,也是同步的。
10 -
7七月
2016-12-28
不是。你理解稍微有点儿问题。this.data和 this.setData,没有同步和异步。我的意思是说,在onLoad里可以直接用this.data,但如果你在onLoad里又有一个异步的方法,在这个异步方法里,去this.data是无效的。当然新版本 改动了生命周期,this.data已经无效了,都必须使用setData
112016-12-29 -
7七月
2016-12-29
不客气,祝学习愉快
00 -
幸福一点点
提问者
2016-12-29
多谢老师,还得多多练习体会才行,不然理解还是不够呀,嘿嘿
00
相似问题