REST API和客户端 - 删除以前看到的项目 - 客户端或服务器端?

时间:2013-09-12 01:24:46

标签: ios rest asp.net-web-api

我们有一个网络应用程序,它使用Mahout和CF过滤来生成产品推荐,具体取决于用户为项目分配评级。

有一个iOS应用程序通过REST API与webapp通信,让用户滚动项目并为其分配评级。

iOS应用程序将从webapp中提取已排名产品列表 - 这是显示给用户的列表。当用户滚动到最后时,我们会在列表中进一步请求。

还要求iOS应用程序不显示他们之前在该特定设备上看到的用户产品。

我的问题是 - 我们应该如何处理这最后一项要求?

每个iOS客户端是否应该维护他们之前看到的内容列表,并将其从服务器中提取的列表中删除?

或者服务器是否应该为每个客户端维护一个状态,并在发送之前从列表中删除它们?

对于这两种方法,您能看到什么利弊?

干杯, 维克多

1 个答案:

答案 0 :(得分:0)

首先,如果要求不显示他们之前在任何设备/平台上看到的用户产品(例如,如果他们在iphone上使用应用程序然后使用ipad / ipod)那么你肯定要做服务器端(因为应用程序无法知道用户在其他设备上看到了什么,除非您将其存储在服务器上)。

假设这是设备特定要求,我认为您的目标是最小化(可能不可靠或缓慢)网络流量以优化iPhone体验。与服务器来回同步将需要额外的网络流量,这可能有时会失败。这将导致客户端存储的结论。除非您的用户会看到大量可能会占用磁盘空间的产品,但我认为每个用户存储的数据量是名义上的。