为什么大多数iOS网络框架都有一个队列来管理请求?

为什么大多数iOS网络框架都有一个队列来管理请求?,ios,iphone,afnetworking,Ios,Iphone,Afnetworking,为什么大多数iOS网络框架都有一个队列来管理请求?排队请求带来了什么好处 例如,AFNetworking有一个NSOperationQueue来管理其请求。为什么需要这个队列?网络请求最好异步完成。这有几个原因,例如不可预测的响应时间和可能的网络故障。因此,当你设计一个依赖于网络请求的应用程序时,最好在设计时牢记这一点。例如,如果您需要填写表格,而不是直接在通话中填写,您可以在回拨例程中返回数据时(或当您的应用程序发现请求已完成时)填写表格 异步意味着多个任务。要在应用程序设计中做到这一点很难。

为什么大多数iOS网络框架都有一个队列来管理请求?排队请求带来了什么好处


例如,AFNetworking有一个
NSOperationQueue
来管理其请求。为什么需要这个队列?

网络请求最好异步完成。这有几个原因,例如不可预测的响应时间和可能的网络故障。因此,当你设计一个依赖于网络请求的应用程序时,最好在设计时牢记这一点。例如,如果您需要填写表格,而不是直接在通话中填写,您可以在回拨例程中返回数据时(或当您的应用程序发现请求已完成时)填写表格


异步意味着多个任务。要在应用程序设计中做到这一点很难。NSOperationQueues是一种很好的方法,可以保护应用程序免受这些复杂性的影响。特别是,它提供了一种非常自然的方式来确保只有在数据准备就绪时才调用任务,这是因为NSOperationQueue将序列化队列上的任务,而无需管理自己的信号量或其他同步原语。

网络请求最好异步完成。这有几个原因,例如不可预测的响应时间和可能的网络故障。因此,当你设计一个依赖于网络请求的应用程序时,最好在设计时牢记这一点。例如,如果您需要填写表格,而不是直接在通话中填写,您可以在回拨例程中返回数据时(或当您的应用程序发现请求已完成时)填写表格


异步意味着多个任务。要在应用程序设计中做到这一点很难。NSOperationQueues是一种很好的方法,可以保护应用程序免受这些复杂性的影响。特别是,它提供了一种非常自然的方式来确保只有在数据准备就绪时才调用任务,这是因为NSOperationQueue将序列化队列上的任务,而无需管理自己的信号量或其他同步原语。

网络请求最好异步完成。这有几个原因,例如不可预测的响应时间和可能的网络故障。因此,当你设计一个依赖于网络请求的应用程序时,最好在设计时牢记这一点。例如,如果您需要填写表格,而不是直接在通话中填写,您可以在回拨例程中返回数据时(或当您的应用程序发现请求已完成时)填写表格


异步意味着多个任务。要在应用程序设计中做到这一点很难。NSOperationQueues是一种很好的方法,可以保护应用程序免受这些复杂性的影响。特别是,它提供了一种非常自然的方式来确保只有在数据准备就绪时才调用任务,这是因为NSOperationQueue将序列化队列上的任务,而无需管理自己的信号量或其他同步原语。

网络请求最好异步完成。这有几个原因,例如不可预测的响应时间和可能的网络故障。因此,当你设计一个依赖于网络请求的应用程序时,最好在设计时牢记这一点。例如,如果您需要填写表格,而不是直接在通话中填写,您可以在回拨例程中返回数据时(或当您的应用程序发现请求已完成时)填写表格


异步意味着多个任务。要在应用程序设计中做到这一点很难。NSOperationQueues是一种很好的方法,可以保护应用程序免受这些复杂性的影响。特别是,它提供了一种非常自然的方法来确保只有在数据准备就绪时才会调用任务-这是因为NSOperationQueue将序列化队列上的任务,而无需管理自己的信号量或其他同步原语。

这不仅对异步调用很重要,但你也不想控制国家,是吗?也许您希望有一系列调用—而不是等待响应然后手动触发下一个操作,您可以填充队列,让管理器根据响应从那里调度它

其他用途可能是上传多个文件-你不想一次上传超过一定数量的文件,对吗?如果你失去了互联网连接,你发现自己已经完成了一半,该怎么办?这肯定会让你的用户感到不安。相反,您需要再次填充操作队列,一旦上传了一个文件,就会自动调度下一个文件

最后—如果您使用队列,在出现故障的情况下,您可以有一个队列观察器,该观察器可以重新分派失败的查询,也可以删除随后的调用


总的来说,它使您的网络组件更健壮,当然也更易于维护。

它不仅对异步调用很重要,而且您也不想保持状态,是吗?也许您希望有一系列调用—而不是等待响应然后手动触发下一个操作,您可以填充队列,让管理器根据响应从那里调度它

其他用途可能是上传多个文件-你不想一次上传超过一定数量的文件,对吗?如果你失去了互联网连接,你发现自己已经完成了一半,该怎么办?这肯定会让你的用户感到不安。相反,您需要再次填充操作队列,一旦上传了一个文件,就会自动调度下一个文件

最后—如果您使用队列,在出现故障的情况下,您可以有一个队列观察器,该观察器可以重新分派失败的查询,也可以删除随后的调用


总的来说,它使您的网络组件更健壮,当然也更易于维护。

它不仅对异步调用很重要,而且您也不希望保留状态