iOS开发缓存的实际运用:避免多余的数据请求

iOS开发缓存的实际运用:避免多余的数据请求_第1张图片
iu

什么是多余的数据请求?

如GIF所示:


iOS开发缓存的实际运用:避免多余的数据请求_第2张图片

“休闲食品”被点击了两次,两次都出现了loading也就是说两次都请求了数据。第二次请求数据就是多余的。

这里的流程是:

点击左边的cell,传一个id到后台,获取到数据后展示。

为避免多余的数据请求,我使用的解决方案是:

请求数据之前先在缓存数组中寻找缓存的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];

使用缓存后的效果如下:

iOS开发缓存的实际运用:避免多余的数据请求_第3张图片

只要是请求过的就不会再请求了。

注意:

刷新的时候记得清空缓存数组,要不然刷新就失去意义了。

你可能感兴趣的:(iOS开发缓存的实际运用:避免多余的数据请求)