iOS:数据会话与短暂会话

我的应用程序的webView加载一个页面,我注入一些 JavaScript,为我自动点击,并添加一个项目到我的愿望清单.对于这样的事情,建议您使用数据会话或临时会话来加载页面?速度对我很重要,我正在尝试优化是尽可能多的Objective-C(yupp,甚至毫秒).

该页面基本上加载产品页面,除了实际产品之外的所有东西总是相同(背景视图,网站菜单栏,按钮图像等).现在我正在使用NSURLConnection,而我正在尝试更新我的代码来使用NSURLSession.

解决方法

默认会话与其他Foundation方法类似,用于下载URL.他们使用永久性的基于磁盘的缓存并将凭据存储在用户的钥匙串中.

>使用全局或共享cookie,缓存和凭据存储对象的配置.行为类似于NSURLConnection.
>共享会话使用全局单例凭据,缓存和cookie存储对象.这可以用于代替使用[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]的现有代码

短暂会话不会将任何数据存储到磁盘;所有缓存,凭证存储等都保存在RAM中并与会话相关联.因此,当您的应用程序使会话无效时,会自动清除该会话.

>私有会话配置,不会保留cookie,缓存和凭据存储对象.如名称所示,配置设置为短暂的生活,并在会话无效时被删除.

后台会话类似于默认会话,但单独的进程处理所有数据传输.后台会话有一些额外的限制,描述在“Background Transfer Considerations.”

>后台会话类似于默认会话,但它可以用于在某些限制内代表挂起的应用程序执行联网操作.
>类似于默认会话,即使应用程序处于挂起状态,也可以执行数据的上传或下载.

参考Apple Doc

//Default session
+ (NSURLSessionConfiguration *)defaultSessionConfiguration;

//Ephemeral
+ (NSURLSessionConfiguration *)ephemeralSessionConfiguration;

//Background 
+ (NSURLSessionConfiguration *)backgroundSessionConfiguration:(NSString *)identifier;

NSURLSession任务和代表

下图显示了NSURLSession任务及其层次结构的类型.

More Details

以上是来客网为你收集整理的iOS:数据会话与短暂会话全部内容,希望文章能够帮你解决iOS:数据会话与短暂会话所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。