美文网首页
跟诸子学游戏 请求发送链

跟诸子学游戏 请求发送链

作者: 诸子百家谁的天下 | 来源:发表于2018-07-18 15:44 被阅读13次

    当我们点击一个button的时候,有2条平行线,一条是打开一个界面(view),另一条是一个网络请求.

    异步等待数据:

    打开一个界面但是服务器数据没有返回,这时的界面会显示空白,可以做提示,等到服务器数据返回进行数据刷新.好处是不卡主线程,界面仍然流动,坏处是需要多在下一个界面做提示信息,并且处理多线程问题.

    同步等待数据:

    点击button展示一个loading的提示框,等待服务器返回数据,数据返回之后,再将数据传输到界面直接进行展示.好处是节省资源与时间,坏处是用户体验可能不好,网络延迟时,会造成用户流失率严重.

    请求时机:

    当点击button的时候,后面的连续响应链,是在哪个响应链/响应点上面去请求,是个极大的问题,需要多做考虑.如:点击button的一瞬间,界面打开一瞬间,刚打开的时候,打开完毕之后,稍等个几秒再做请求,都是需要和设计模式契合才能带来效率,不然就是个天坑.

    回调方法:

    1:回调方法是和请求方法写在一起,即C++中的lambda表达式,C#中的匿名函数,C中的指针函数,OC中的block块,Lua中的方法传递等等,好处是不用再费力去寻找回调方法了,直接从请求那个点向下一直写代码,坏处是对此语言机制不理解,造成内存泄露以及其他问题等.

    2:回调方法和请求方法不写在一起,并且分割开来,分文件或者分区域写.好处是代码看起来不杂乱,不会出现语言机制的错误(因为这样很容易做),并且可以使用设计模式进行操作,坏处是,如果没有文档,只有函数调用,你需要花时间去寻找其中的请求方法/回调方法,然后打log进行一步一步解析,在不好的设计模式中,极大的耗费程序员的精力.

    解析数据:

    1:写在网络请求回调的地方.好处是清晰可见,坏处是代码量臃肿,不能很好的配合设计模式.

    2:单独操作数据解析,做法就是写一个公用类,哪里需要哪里调.好处就是封装,不需要调用者知道,坏处是公用类方法很多,有理解不清晰的问题.尤其写lua时,没有规范很容易出现此类问题,消耗时间.

    数据保存:

    1:数据保存在当前界面的属性上面.好处是使用方便,更改方便,坏处是不符合设计模式,不规范没有MVC的设计思想.

    2:数据保存在model中,保存在model中需要在controller里面解析出来,利用方法传递给view层,更新界面,如果将model数据传递给view层,完全破坏了MVC设计模式,更不能直接属性传递,然后刷新.需要保持view的洁净,完全就是view里面的操作,不包含一点数据.与外部操作只用方法/通知/观察等互通有无.

    相关文章

      网友评论

          本文标题:跟诸子学游戏 请求发送链

          本文链接:https://www.haomeiwen.com/subject/xueqpftx.html