什么是多余的数据结构?
即在频繁刷新的数据没有太多的改变,则说明这些数据无需再次请求,可以直接使用缓存存储数据。
为避免多余的数据请求,可行的解决方案
请求数据之前现在缓存数组中寻找缓存的model,如果有,就不请求数据,直接用缓存的,如果没有,在请求数据,并将model放到缓存数组里。
1. 需要一个用来缓存model的数组。
/** 模块的model缓存数据*/
@property (nonatomic, strong) NSMutableArray * itemsModelArray;
2. 请求数据前看看有没有缓存的,有就直接用
// 从缓存数组里model,如果有就直接用
for (CQBoutiqueItemsModel * itemsModel in self.itemsModelArray) {
if ([itemsModel.catID isEqualToString:Model.ID]) {
self.itemsView.model = itemsModel;
return;
}
}
// 请求数据
如何判断是否有缓存的model,我的方法是遍历缓存数组查看是否有model的id与传入的id一致的。
3. 如果没有缓存请求数据,并缓存
// ----- 请求数据完成 ----- //
// 赋值model
self.itemsView.model = itemsModel;
// 放入缓存数组
[self.itemsModelArray addObject: itemsModel];
这样 请求过的数据就不会在请求了
tips:
刷新的时候记得清空缓存否则刷新就没有意义了
写在后面:
不同类型的场景所使用的缓存类型是不一样的,这个是属于点击后会频繁请求,但数据不会发生太多变化的场景。
而且如果要结合本地缓存去使用的时候需要考虑的因素就会增加很多,这个在以后再进行讨论。