短时间内连续发请求的问题
开发中做搜索常常碰到要做联想的功能 输入框下头根据你的输入出来结果列表,还有开发地图时候拖动地图加载 ,搜索逻辑放主线程会卡,放子线程要cancel之前的,记录下怎么解决。
解决办法
1 ,输入时间间隔内放弃上一次的请求,就是连续快速输入根本不发请求,自己做timer计时时间戳之类的,检测输入间隔。
后来项目中用到ReactiveCocoa, 用它的api可以达到上边效果,throttle > switchToLatest
结果感觉凑合吧 能用。
2. 管理operationqueue,添加operation,在添加前把之前的operation cancel掉:不是简单调用cancel api 要把operation的cancel属性置yes,在处理operation回调的时候判断是否cancel,然后就。。。
结果是每次肯定都会去请求 浪费流量了。。
综上还是1和2 联合起来用比较靠谱~