0

我正在寻找一种在我的应用程序中缓存尽可能多数据的方法。这些数据中的大部分都是对以下步骤至关重要的项目,例如朋友列表。根据选择的朋友,我会显示一个包含某些项目的列表,并且可以向这个朋友发送一些东西。

我想缓存好友列表。这样,不可能向不存在的朋友发送东西,这显然会导致错误。或者也许缓存可以工作,以便它显示“无效的缓存朋友”消息并在它之后刷新......?

好友列表不会经常更改,但在用户使用应用程序时仍然可以更改。

我还想缓存可以发送给用户的项目。这些也不会经常更改,但用户不发送不存在的项目非常重要,如果他们在服务器端更新,他们当然希望他们看到最新的项目。

例如,这与缓存可以购买的物品的原理相同。用户不要尝试使用无效项目完成交易,这一点至关重要。

我已经做了一些研究,但到目前为止只能提出一个粗略的想法:

使用哈希或时间戳比较数据:在这种情况下,我不知道在什么时候做呢?加载屏幕可能没有任何意义,因为无论如何用户都必须等待服务器的响应。也许是后台进程?但我多久运行一次?如何同步?

此外,我可以添加一个更新菜单项,以便用户可以确保数据已更新。但这仍然没有解决用户可以尝试使用无效数据完成交易的问题(如果他们不按下按钮)。

我还发现了一些关于“实时数据”和 AVI 的信息,但我认为这不适用于我的情况,我的数据很少会改变,但要求它是有效的,因为它不仅是信息数据,而且是交易决定数据。

有什么办法来处理这个?

4

1 回答 1

0

我认为您是对的,您应该使用数据源(服务器)检查时间戳。

如果这是朋友之间的点对点交换,则在发送数据之前,请从服务器请求其时间戳。没有那么多数据,通常接近实时。但是发送过时数据的可能性仍然很小 - 更新后仅“一纳秒”。

如果它通过服务器(为什么不呢?),作为奖励,您将通过检查服务器上的时间戳并在发送的数据已过时取消事务来获得乐观锁定。

于 2012-09-23T11:22:10.900 回答