美文网首页iOS极客修移动端技术分享
iOS开发 合并网络请求接口

iOS开发 合并网络请求接口

作者: 嫌疑人zx | 来源:发表于2019-01-02 17:45 被阅读5次

合并网络请求接口很基础。但是我一直都没有重视这个东西,直到我发觉挨个接口请求刷新,其实拖慢了首页的请求速度。

我现在手上的项目首页需要请求4个接口,用户进入首页后,会分别请求接口,接口挨个请求完成后,刷新tableView,并且取消下拉刷新的状态。

网络请求是异步的,也就是说,4个网络请求是可以同时进行的,相比合并之后,请求时间理论上只需要之前的四分之一。

代码实现:

/**
 合并请求组合
 */
- (void)getData{
    
    dispatch_group_t group = dispatch_group_create();
    
    // 加载通知列表
    dispatch_group_enter(group);
    [self getNotifyList:group];
    
    // 获取本月排行榜
    dispatch_group_enter(group);
    [self getRankList:group];
    
    // 获取订单状态
    dispatch_group_enter(group);
    [self getOrderNumData:group];
    
    // 获取服务指标的数据
    dispatch_group_enter(group);
    [self getServiceIndicators:group];
    
    dispatch_group_notify(group, dispatch_get_main_queue(), ^{
        [self.HomePageCollectionView reloadData];
        [self.HomePageCollectionView.mj_header endRefreshing];
    });
}

/**
 加载通知列表
 */
- (void)getNotifyList:(dispatch_group_t)group{
    WEAKSELF
    [[JKXNetInterface startInterface] getNotifyListWithTask:^(NSURLSessionDataTask *NetTask) {
        
    } Withblock:^(BOOL isSuccessful, id result, NSString *error) {
        if(isSuccessful){
           //数据处理
        }
        dispatch_group_leave(group);
    }];
}

/**
 获取订单状态
 */
- (void)getOrderNumData:(dispatch_group_t)group{
    WEAKSELF
    [[JKXNetInterface startInterface] getOrderNumWithTask:^(NSURLSessionDataTask *NetTask) {
        
    } Withblock:^(BOOL isSuccessful, id result, NSString *error) {
        
        if (isSuccessful) {
            //数据处理
        }
        
        dispatch_group_leave(group);
    }];
}

/**
 获取服务指标的数据
 */
- (void)getServiceIndicators:(dispatch_group_t)group{
    WEAKSELF
    [[JKXNetInterface startInterface] getServiceIndexWithTask:^(NSURLSessionDataTask *NetTask) {
        
    } Withblock:^(BOOL isSuccessful, id result, NSString *error) {
        
        if(isSuccessful){
            //数据处理
        }
        
        dispatch_group_leave(group);
    }];
}

/**
 获取本月排行榜
 */
- (void)getRankList:(dispatch_group_t)group{
    WEAKSELF
    [[JKXNetInterface startInterface] getRankListWithTask:^(NSURLSessionDataTask *NetTask) {
        
    } Withblock:^(BOOL isSuccessful, id result, NSString *error) {
        
        if (isSuccessful) {
            //数据处理
        }
        
        dispatch_group_leave(group);
    }];
}

相关文章

  • iOS开发 合并网络请求接口

    合并网络请求接口很基础。但是我一直都没有重视这个东西,直到我发觉挨个接口请求刷新,其实拖慢了首页的请求速度。 我现...

  • 网络请求

    ios开发 合理封装请求接口 概述 如今大多的app都会与网络打交道,作为开发者 合理的对网络后台请求接口进行封装...

  • iOS开发·网络请求方法总结复习(下)

    iOS开发·网络请求方法总结复习(下) iOS开发·网络请求方法总结复习(下)

  • 前端性能优化的方法

    网络请求 减少HTTP资源请求次数(合并接口) 减小HTTP请求大小 避免页面中空的href和src 减少页面重定...

  • iOS开发·网络请求方法总结复习(上)

    iOS开发·网络请求方法总结复习(上)

  • iOS开发-网络-合理封装请求接口

    概述如今大多App都会与网络打交道,作为开发者,合理的对网络后台请求接口进行封装十分重要。本文要介绍的就是一种常见...

  • RxSwift(IV)

    网络请求合并 RxSwift 网络请求封装网络安全请求合并: 打印: 参考资料: 观察序列创建

  • HTTPS

    iOS客户端校验https网络请求证书 iOS开发 支持https请求以及https请求的抓包 NSURLConn...

  • 系列:iOS开发-网络请求

    系列:iOS开发-网络请求 我们的目标是开发应用,那么或多或少的我们就会有网络请求的需求,比如我们在开发的时候有用...

  • iOS HmacSha256Hex签名

    为了网络安全,后台会对接口进行加密,需要对请求的参数进行sign加密。此时此刻,我们iOS开发对需要对sign签名...

网友评论

    本文标题:iOS开发 合并网络请求接口

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