我正在编写一个应用程序,它可以在一天内连接并不断与我们的服务器通信。
在这一天,用户可能会或可能不会松开他们的连接,超出范围等我想知道处理这些实例的最佳方式是什么,关于我的代码的行为方式以及我告知用户的方式
答案 0 :(得分:1)
答案 1 :(得分:1)
*注意:我假设您要跨HTTP执行网络操作
<强>读取强>
对于读取的数据,它取决于您对其变化速度的假设。
对于可更改的数据(预计每天会更改几次的数据),请使用SDURLCache。 SDURLCache提供HTTP本地缓存。如果你用AFNetworking连接它,那么它也会尊重标准的HTTP缓存行为(过期标题,etags等)。
对于“静态”数据,您可以将数据与应用程序本地捆绑在一起,并通过HTTP定期检查更新。
在任何一种情况下,您都应该尝试(如果可能)使用应用程序打包一些数据,以便在安装应用程序的那天,它可能根本不需要网络连接。
<强>写入强>
对于写入,处理此问题的最佳方法是对所有写入进行排队并在适当的时间发布。实现队列相对简单,很大程度上取决于如何在本地存储事物。一种方法是在SQLite db表中设置标志,以指示需要发布到服务器端的数据元素。另一个可能是构建文档并将它们写入磁盘,有一个单独的调度线程,以便在有连接时将它们发布到服务器端。