有没有办法减轻与服务器的连接

时间:2017-03-18 19:48:27

标签: ios objective-c json asp.net-mvc afnetworking

我对IOS编程很新 所以我甚至不知道如何提问 但我会解释这个问题 我创建了一个主要依赖于从服务器获取数据的应用程序,有时json的大小太大 有没有办法在设备上保存json而不是带来,但最近的数据或只能与服务器同步 该计划是客观的,我使用afnetworking 后端是ASP.net-mvc

1 个答案:

答案 0 :(得分:0)

处理此用例的一般方法是,始终在应用程序中存储latestItemId / latestItemTimestamp,每次需要获取新数据时,都会使用此信息调用服务器。在服务器端点中,使用此id / timestamp并在此id / timestamp之后获取数据。

当应用程序第一次请求api端点时,latestItemId的值将为0.每次获取数据后,您将继续更新它。由于您要求服务器仅在特定ID之后提供数据,因此您将只获得所需数据(最新数据)

例如,您的服务器代码可能看起来像(使用EF和LINQ)(下面的代码是为了给您一个想法。我没有检查编译错误

public List<string> Messages(int fromId=0,int top=20)
{
   var d = yourDbContext.Messages
                        .Where(x=>x.Id>fromId)
                        .OrderBy(f=>f.InsertTime)
                        .Take(top)
                        .Select(c=>c.MessageBody)
                        .ToList();
   return d;
}

从IOS客户端应用程序端,您可以将数据(latestId)保存在应用程序内存中和/或使用NSUserDefaults来存储它。 NSUserDefaults.standardUserDefaults()方法可能会有所帮助(在Swift中)