美文网首页
IOS 同步与异步加载数据

IOS 同步与异步加载数据

作者: Daimer | 来源:发表于2017-12-21 10:55 被阅读0次

同步与异步的表面现象上来看,区别是数据传输会不会阻塞UI。

而实际上,同步加载数据就是在主线程中进行数据加载。

而异步加载数据就是在非主线程中加载数据。


鉴于用户的网络状况可能会有很多不可预知的状况,所以一般情况下都是使用异步加载,这样不会使用户在网络情况较差的情况下面对一个很长的空白期。

---------同步加载----------

NSURLResponse* response=nil;

NSError* error=nil;

NSData* data=[NSURLConnection sendSynchronusRequest:request returningResponse:&response error:&error];(sendSynchronusRequest:发送同步请求)

(比较明显的特点是:同步是没有代理方法的。)

或者:

NSURL* url=[NSURL URLWithString:[NSURL urlWithString:@"www.baidu.com"]]

NSData* data=[NSData dataWithContensOfURL:url];

(凡是使用dataWithContensOfURL的都是同步方法,因为这句话定义在主线程中,主线程会阻塞等待这句话完成。如果开辟一个子线程去执行它,就不会有租塞现象。)

--------异步加载---------

NSURLConnection* request=[[NSURLRequest alloc]initWithURL:[NSURL urlWithString:@"www.baidu.com"]];

[NSURLConnection connectionWithRequest:request delegate:self];

(这里将自身设为代理对象)

相关文章

  • IOS 同步与异步加载数据

    同步与异步的表面现象上来看,区别是数据传输会不会阻塞UI。 而实际上,同步加载数据就是在主线程中进行数据加载。 而...

  • 2021-07-14【unity】Addressble bund

    1.同步加载一个: 2.同步加载多个: 3.异步加载一个: 4.异步加载:

  • HiveMQ源码阅读

    插件加载及启动 同步加载异步启动 启动后校验 数据持久化加载及初始化 异步线程池加载及初始化 客户端连接流程鉴权 ...

  • 跳转场景

    同步加载 (同步加载:如果场景很大,有可能会卡顿。) 异步加载     需要三个场景来完成异步加载,开始场景、过渡...

  • scrapy简书整站爬取

    数据同步及异步存储到MySQL 对于ajax 加载的数据用selenium辅助加载解析 整站爬取提取url规则 j...

  • js加载同步还是异步? JSONP原理?

    1、浏览器端的js加载默认是同步还是异步?同步,可以人为设置异步;async让js异步加载,需要每个script标...

  • JS 模块化方案对比

    1. CommonJS 规范(同步加载 NodeJS) 2. AMD(异步加载模块 requireJS) 采用异步...

  • 模块化编程--require使用

    AMD--require AMD规范:异步模块加载机制 服务器端 -- 同步加载 浏览器端 -- 异步加载 ...

  • html 页面的优化处理(ajax)

    同步加载(刷新):每次刷新的是整个页面的数据 异步加载(刷新):每次刷新的是整个页面的部分数据 由于之前做公司内部...

  • UNIX 的5种IO模型介绍

    IO模型同步、异步、阻塞、非阻塞socket阻塞与非阻塞,同步与异步 同步和异步 同步/异步主要针对C端-同步就像...

网友评论

      本文标题:IOS 同步与异步加载数据

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