先订阅我的应用程序:
我的问题是:
谢谢!
发布于 2021-01-12 21:53:43
您希望根据需要使用尽可能少的URLSessions。通常,这只是一个,它也不太可能使这个会话无效,并在应用程序的生命周期内创建一个新的会话。
之所以有尽可能少的请求,是因为URLSession专为处理多个网络请求而设计的--同时并行或连续地执行它们--并且可以优化在此会话中执行的所有请求,以便使用更少的内存、更少的功率和实现更快的执行时间。
另一方面,在不同的URLSessions中优化执行的请求的选项要少得多。特别是对于运行在不同URLSessions中的请求,不能通过使用HTTP/2来提高性能。
但是,可能存在创建多个需求或情况的情况。例如,您使用第三方图像加载库来创建自己的URLSession。或者您需要不同的URLSession配置,如蜂窝使用、cooky策略或缓存策略等,这些配置不能共享。
或者,您希望将某个URLSession (它是URLCache和凭据缓存)绑定到某个经过身份验证的用户。当您的应用程序中有一些“注销”功能时,您可以使会话无效,清除凭据存储和URLCache。同时,您有另一个用于“公共”API的URLSession,以及用于图像加载的另一个URLSession,它们不受“注销”的影响,并且缓存的响应应该保存在哪里。
为每个请求创建一个URLSession,然后让它在请求完成时挂起,然后在下一个请求中创建另一个URLSession,这是一个普通的不-不。你不能做得比这更糟。
另请参阅
https://stackoverflow.com/questions/65422247
复制相似问题