Changes between Initial Version and Version 1 of api/iOSRequest


Ignore:
Timestamp:
01/08/2015 11:05:19 AM (11 years ago)
Author:
liaojiaohe
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • api/iOSRequest

    v1 v1  
     1 
     2= session周期定义 = 
     3从后台恢复回来(距离上一次进入后台时间差高于30秒)、重新启动都算一个新的session周期。 
     4 
     5= 网络请求原则 = 
     6 
     71.记录一个session内是否有访问过的数据,具体是在程序内保存url访问记录表,一进入新session清空旧表;[[BR]] 
     8 
     92.在一个session周期内发出一个新请求:有缓存数据,先使用缓存数据显示界面(除非有特殊要求),然后请求网络更新数据以及缓存;没缓存数据,显示下拉头或Loading,网络数据回来后更新界面。[[BR]] 
     10 
     113.在一个session周期内发出一个旧请求:有缓存数据,先使用缓存数据显示界面(除非有特殊要求),不发出网络请求。没缓存数据,显示下拉头或Loading,网络数据回来后更新界面。[[BR]] 
     12 
     134.获取网络数据时,,如果数据没更新,只返回响应头304,不刷新页面。[[BR]] 
     14 
     155.Loading的显示策略是主展示内容加载完就应该去掉(如终端页加载完就要去掉,而不是等到评论、收藏等数据都拿到了才去掉)。[[BR]] 
     16 
     176.根据业务来定义请求等级,主界面显示的属于高等级(以资讯首页为例,其中包括首页的资讯列表,焦点图前两张,可见列表内的前面几张导读图),界面辅助显示的属于中等级,列表图片大部分属于低等级。具体可根据业务要求划分。[[BR]] 
     18 
     197.在不同session内,打开应用会主动刷新当前页面数据,当界面返回时,也需要刷新数据。[[BR]] 
     20 
     21iOS优先级处理原则:[[BR]] 
     22建立三个请求队列,请求分成高、中、低三种优先级;当有高等级请求时,更高等级的请求必须先做处理。同等级间的请求按队列处理。[[BR]] 
     23        1)当高等级请求正在处理时,低等级请求不会进行处理。[[BR]] 
     24        2) 当低等级请求已经正在处理,高等级请求进入,不会暂停当前请求。[[BR]] 
     25 
     26 
     27||协议||新session||是否有缓存||是否先返回缓存||是否返回网络数据||网络异常时处理||可应用场景||备注|| 
     28||PCHttpClientCachePolicyHttpCache||√||否||否||√||为空||第一次打开||有缓存必须先返回缓存,再返回新数据,断网不处理|| 
     29||PCHttpClientCachePolicyHttpCache||√||√||√||√||为空||第一次打开||有缓存必须先返回缓存,再返回新数据,断网不处理|| 
     30||PCHttpClientCachePolicyHttpFirst||√||否||否||√||为空||第一次打开||有新数据时返回新的,否则返回缓存|| 
     31||PCHttpClientCachePolicyHttpFirst||√||√||否||√||返回缓存||第一次打开||有新数据时返回新的,否则返回缓存|| 
     32||PCHttpClientCachePolicyCacheFirst||否||否||否||√||为空||第二次打开的请求||有缓存时返回缓存,当没有缓存时才请求网络|| 
     33||PCHttpClientCachePolicyCacheFirst||否||√||√||否||-||第二次打开的请求||有缓存时返回缓存,当没有缓存时才请求网络|| 
     34||PCHttpClientCachePolicyNoCache||-||否||否||√||为空||强刷或第二页加载||有新数据时才返回|| 
     35||PCHttpClientCachePolicyNoCache||-||√||否||√||为空||强刷或第二页加载||有新数据时才返回||