请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据异步加载速度 PK onLoad加载速度,当后者速度比前者快的时候,我们该怎么办

问题起源于【6-4 使用数据填充新闻详情页面】,先来张图,回忆一下,嘿嘿:

https://img1.sycdn.imooc.com/szimg//5863b5560001d8e009680546.jpg

【确认?】this.data.postData = postData;这种同步方法,在前面的某个章节中老师特别提醒新版已经不支持了,找了半天忘记具体在哪里了,所以就不上图了,我为了确认我没记错特意的实验了一下,确实不支持了;在这里再次确认一下,我接下来问的问题是关于这块的!!!

在这节课最后几分钟,老师说过:(麻烦老师确认一下,看看学生理解的是否错误)

【我的理解:】

this.data.postData = postData; 属于 同步加载数据

this.setData({

        postData : postData

})

属于异步加载数据;

【问题】

异步加载数据,存在,数据还没有完全加载到 data{} 里面,onLoad就已经完成了,导致的后果就是页面显示不全;

而且,现在新版本又不支持同步加载数据,并且上面的现象在现实中发生的概率非常的大(自我感觉,因为实际的工作中后台给出的数据量是非常大的,所以在这里大胆的猜测这种情况发生的几率大)

当然,我们只加载第一屏的内容,这种情况发生的几率,非常非常的小,但是还是存在;所以,

【面对的情况就是】

  1. 同步加载数据不支持,只能选择异步加载数据

  2. 虽然我们可以用分页来降低这种情况的发生,但是还是会发生加载不全的现象

麻烦老师帮忙看一看,这种担心是否有必要

正在回答 回答被采纳积分+3

4回答

7七月 2016-12-28 21:54:26

this.data 是改变了初始化变量,这个操作是同步的。this.setData是立即更新绑定变量,也是同步的。

1 回复 有任何疑惑可以回复我~
7七月 2016-12-28 21:53:27

不是。你理解稍微有点儿问题。this.data和 this.setData,没有同步和异步。我的意思是说,在onLoad里可以直接用this.data,但如果你在onLoad里又有一个异步的方法,在这个异步方法里,去this.data是无效的。当然新版本 改动了生命周期,this.data已经无效了,都必须使用setData

1 回复 有任何疑惑可以回复我~
  • 提问者 幸福一点点 #1
    多谢老师,还得多多练习体会才行,不然理解还是不够呀,嘿嘿
    回复 有任何疑惑可以回复我~ 2016-12-29 11:51:58
7七月 2016-12-29 12:18:10

不客气,祝学习愉快

0 回复 有任何疑惑可以回复我~
提问者 幸福一点点 2016-12-29 11:51:05

多谢老师,还得多多练习体会才行,不然理解还是不够呀,嘿嘿

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号